dotnet
dotnet copied to clipboard
Error in IBufferWriterExtension Write for unmanaged types
Describe the bug
IBufferWriterExtension.Write method for unmanaged types creates a Span with invalid length:
int length = sizeof(T);
Span<byte> span = writer.GetSpan(1);
should be:
int length = sizeof(T);
Span<byte> span = writer.GetSpan(length);
That causes System.ArgumentException : The current buffer writer can't contain the requested input data. at runtime.
Regression
No response
Steps to reproduce
Leave only one byte of free capacity and write a larger unmanaged type:
using var buffer = new ArrayPoolBufferWriter<byte>(16);
var count = buffer.Capacity - 1;
for (int i = 0; i < count; i++)
{
buffer.Write<byte>(0);
}
buffer.Write(1.0);
Expected behavior
It should grow the buffer accordingly.
Screenshots
No response
IDE and version
VS 2022
IDE version
No response
Nuget packages
- [ ] CommunityToolkit.Common
- [ ] CommunityToolkit.Diagnostics
- [x] CommunityToolkit.HighPerformance
- [ ] CommunityToolkit.Mvvm (aka MVVM Toolkit)
Nuget package version(s)
8.2.2
Additional context
No response
Help us help you
Yes, I'd like to be assigned to work on this item