Use ImageInfo structure when writing DC42.

This commit is contained in:
2017-12-30 16:26:11 +00:00
parent 1c98756b97
commit 9043735b33

View File

@@ -103,7 +103,6 @@ namespace DiscImageChef.DiscImages
/// <summary>Header of opened image</summary> /// <summary>Header of opened image</summary>
Dc42Header header; Dc42Header header;
ImageInfo imageInfo; ImageInfo imageInfo;
ulong sectorsToWrite;
/// <summary>Start of tags in disk image, after data sectors</summary> /// <summary>Start of tags in disk image, after data sectors</summary>
uint tagOffset; uint tagOffset;
bool twiggy; bool twiggy;
@@ -918,7 +917,8 @@ namespace DiscImageChef.DiscImages
header.Valid = 1; header.Valid = 1;
header.DataSize = (uint)(sectors * 512); header.DataSize = (uint)(sectors * 512);
if(tags) header.TagSize = (uint)(sectors * 12); if(tags) header.TagSize = (uint)(sectors * 12);
sectorsToWrite = sectors;
imageInfo = new ImageInfo {MediaType = mediaType, SectorSize = sectorSize, Sectors = sectors};
try { writingStream = new FileStream(path, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.None); } try { writingStream = new FileStream(path, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.None); }
catch(IOException e) catch(IOException e)
@@ -952,7 +952,7 @@ namespace DiscImageChef.DiscImages
return false; return false;
} }
if(sectorAddress >= sectorsToWrite) if(sectorAddress >= imageInfo.Sectors)
{ {
ErrorMessage = "Tried to write past image size"; ErrorMessage = "Tried to write past image size";
return false; return false;
@@ -979,7 +979,7 @@ namespace DiscImageChef.DiscImages
return false; return false;
} }
if(sectorAddress + length > sectorsToWrite) if(sectorAddress + length > imageInfo.Sectors)
{ {
ErrorMessage = "Tried to write past image size"; ErrorMessage = "Tried to write past image size";
return false; return false;
@@ -1012,7 +1012,7 @@ namespace DiscImageChef.DiscImages
return false; return false;
} }
if(sectorAddress >= sectorsToWrite) if(sectorAddress >= imageInfo.Sectors)
{ {
ErrorMessage = "Tried to write past image size"; ErrorMessage = "Tried to write past image size";
return false; return false;
@@ -1047,7 +1047,7 @@ namespace DiscImageChef.DiscImages
return false; return false;
} }
if(sectorAddress + length > sectorsToWrite) if(sectorAddress + length > imageInfo.Sectors)
{ {
ErrorMessage = "Tried to write past image size"; ErrorMessage = "Tried to write past image size";
return false; return false;