Fix the double buffer rent/free (#921)
* Fix the double buffer rent/free * Fix the double cast to span
This commit is contained in:
parent
dd07ab1735
commit
f71e31a1cd
|
|
@ -14,14 +14,14 @@ namespace Microsoft.AspNetCore.SignalR.Internal.Formatters
|
|||
{
|
||||
// TODO: Optimize for size - (e.g. use Varints)
|
||||
var length = sizeof(long);
|
||||
var buffer = ArrayPool<byte>.Shared.Rent(length);
|
||||
BufferWriter.WriteBigEndian<long>(buffer, payload.Length);
|
||||
output.Write(buffer, 0, length);
|
||||
ArrayPool<byte>.Shared.Return(buffer);
|
||||
var buffer = ArrayPool<byte>.Shared.Rent(length + payload.Length);
|
||||
var bufferSpan = buffer.AsSpan();
|
||||
|
||||
BufferWriter.WriteBigEndian<long>(bufferSpan, payload.Length);
|
||||
bufferSpan = bufferSpan.Slice(length);
|
||||
payload.CopyTo(bufferSpan);
|
||||
output.Write(buffer, 0, payload.Length + length);
|
||||
|
||||
buffer = ArrayPool<byte>.Shared.Rent(payload.Length);
|
||||
payload.CopyTo(buffer);
|
||||
output.Write(buffer, 0, payload.Length);
|
||||
ArrayPool<byte>.Shared.Return(buffer);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue