Use Stream extension to ensure read operations return the requested number of bytes (unless EOF arrives first).

This commit is contained in:
2022-11-14 09:43:16 +00:00
parent f90cc6593f
commit 0eb589d785
178 changed files with 862 additions and 780 deletions

View File

@@ -50,7 +50,7 @@ public sealed partial class RayDim
var buffer = new byte[Marshal.SizeOf<Header>()];
stream.Seek(0, SeekOrigin.Begin);
stream.Read(buffer, 0, buffer.Length);
stream.EnsureRead(buffer, 0, buffer.Length);
Header header = Marshal.ByteArrayToStructureLittleEndian<Header>(buffer);

View File

@@ -51,7 +51,7 @@ public sealed partial class RayDim
var buffer = new byte[Marshal.SizeOf<Header>()];
stream.Seek(0, SeekOrigin.Begin);
stream.Read(buffer, 0, buffer.Length);
stream.EnsureRead(buffer, 0, buffer.Length);
Header header = Marshal.ByteArrayToStructureLittleEndian<Header>(buffer);
@@ -76,7 +76,7 @@ public sealed partial class RayDim
for(var i = 0; i < _imageInfo.SectorsPerTrack * _imageInfo.SectorSize; i++)
{
stream.Read(sectors, 0, sectors.Length);
stream.EnsureRead(sectors, 0, sectors.Length);
stream.Seek(_imageInfo.SectorsPerTrack, SeekOrigin.Current);
_disk.Write(sectors, 0, sectors.Length);
}
@@ -122,8 +122,8 @@ public sealed partial class RayDim
buffer = new byte[length * _imageInfo.SectorSize];
_disk.Seek((long)(sectorAddress * _imageInfo.SectorSize), SeekOrigin.Begin);
_disk.Read(buffer, 0, (int)(length * _imageInfo.SectorSize));
_disk.Seek((long)(sectorAddress * _imageInfo.SectorSize), SeekOrigin.Begin);
_disk.EnsureRead(buffer, 0, (int)(length * _imageInfo.SectorSize));
return ErrorNumber.NoError;
}