private void SetLengthInternal(long value)
{
// Handle buffering updates.
if (_writePos > 0)
{
FlushWriteBuffer();
}
else if (_readPos < _readLength)
{
FlushReadBuffer();
}
_readPos = 0;
_readLength = 0;
if (_appendStart != -1 && value < _appendStart)
throw new IOException(SR.IO_SetLengthAppendTruncate);
SetLengthCore(value);
}