Skip to content

Commit 2704101

Browse files
committed
[Core] Fixed Uploading Span of UploadBuffer
1 parent ba37252 commit 2704101

1 file changed

Lines changed: 8 additions & 7 deletions

File tree

Lagrange.Core/Internal/Context/HighwayContext.cs

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,15 +102,16 @@ public async Task<bool> UploadFile(Stream stream, int commandId, ReadOnlyMemory<
102102

103103
bool end = currentBlockOffset + payload >= fileSize;
104104
var upload = ArrayPool<byte>.Shared.Rent(1 + 1 + 4 + 4 + headProto.Length + (int)payload);
105+
var uploadSpan = upload.AsSpan(0, 1 + 1 + 4 + 4 + headProto.Length + (int)payload);
105106

106-
upload[0] = 0x28;
107-
BinaryPrimitives.WriteUInt32BigEndian(upload.AsSpan(1), (uint)headProto.Length);
108-
BinaryPrimitives.WriteUInt32BigEndian(upload.AsSpan(5), (uint)payload);
109-
headProto.Span.CopyTo(upload.AsSpan(9));
110-
buffer.AsSpan(0, (int)payload).CopyTo(upload.AsSpan(9 + headProto.Length));
111-
upload[^1] = 0x29;
107+
uploadSpan[0] = 0x28;
108+
BinaryPrimitives.WriteUInt32BigEndian(uploadSpan[1..], (uint)headProto.Length);
109+
BinaryPrimitives.WriteUInt32BigEndian(uploadSpan[5..], (uint)payload);
110+
headProto.Span.CopyTo(uploadSpan[9..]);
111+
buffer.AsSpan(0, (int)payload).CopyTo(uploadSpan[(9 + headProto.Length)..]);
112+
uploadSpan[^1] = 0x29;
112113

113-
var content = new ByteArrayContent(upload);
114+
var content = new ByteArrayContent(upload[..(1 + 1 + 4 + 4 + headProto.Length + (int)payload)]);
114115
var request = new HttpRequestMessage(HttpMethod.Post, $"http://{_url}")
115116
{
116117
Content = content, Headers = { { "Connection", end ? "close" : "keep-alive" } }

0 commit comments

Comments
 (0)