fix bug in RefreshBuffer
This commit is contained in:
parent
90d4969bd1
commit
3cdc107bda
@ -80,6 +80,7 @@ namespace Google.Protobuf
|
||||
{
|
||||
// because we're using coded output stream, we know that "buffer" and codedOutputStream.InternalBuffer are identical.
|
||||
codedOutputStream.InternalOutputStream.Write(codedOutputStream.InternalBuffer, 0, state.position);
|
||||
// reset position, limit stays the same because we are reusing the codedOutputStream's internal buffer.
|
||||
state.position = 0;
|
||||
}
|
||||
else if (bufferWriter != null)
|
||||
@ -88,6 +89,7 @@ namespace Google.Protobuf
|
||||
bufferWriter.Advance(state.position);
|
||||
state.position = 0;
|
||||
buffer = bufferWriter.GetSpan();
|
||||
state.limit = buffer.Length;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -108,6 +110,7 @@ namespace Google.Protobuf
|
||||
{
|
||||
bufferWriter.Advance(state.position);
|
||||
state.position = 0;
|
||||
state.limit = 0;
|
||||
buffer = default; // invalidate the current buffer
|
||||
// TODO: add a test when we flush and then try to write more data
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user