in src/RecyclableMemoryStream.cs [890:916]
public int SafeRead(byte[] buffer, int offset, int count, ref long streamPosition)
{
this.CheckDisposed();
if (buffer == null)
{
throw new ArgumentNullException(nameof(buffer));
}
if (offset < 0)
{
throw new ArgumentOutOfRangeException(nameof(offset), $"{nameof(offset)} cannot be negative.");
}
if (count < 0)
{
throw new ArgumentOutOfRangeException(nameof(count), $"{nameof(count)} cannot be negative.");
}
if (offset + count > buffer.Length)
{
throw new ArgumentException($"{nameof(buffer)} length must be at least {nameof(offset)} + {nameof(count)}.");
}
int amountRead = this.InternalRead(buffer, offset, count, streamPosition);
streamPosition += amountRead;
return amountRead;
}