update src/TouchSocket.Core/Pool/ByteManager/ByteBlock.cs.

构造函数设置租用字节数组的最小长度,以防为0或者负数

Signed-off-by: Sunny <yhuse@163.com>
This commit is contained in:
Sunny
2025-05-07 09:46:51 +00:00
committed by Gitee
parent 933e7b0784
commit 366938ebd4

View File

@@ -57,6 +57,8 @@ public sealed partial class ByteBlock : DisposableObject, IByteBlock
/// <param name="byteSize">ByteBlock 的初始大小。</param> /// <param name="byteSize">ByteBlock 的初始大小。</param>
public ByteBlock(int byteSize) public ByteBlock(int byteSize)
{ {
//设置租用字节数组的最小长度以防为0或者负数
byteSize = Math.Max(16, byteSize);
// 使用默认字节池初始化。 // 使用默认字节池初始化。
this.m_bytePool = ArrayPool<byte>.Shared; this.m_bytePool = ArrayPool<byte>.Shared;
// 从字节池租用指定大小的字节数组。 // 从字节池租用指定大小的字节数组。
@@ -72,6 +74,8 @@ public sealed partial class ByteBlock : DisposableObject, IByteBlock
{ {
// 确保字节池不为空。 // 确保字节池不为空。
this.m_bytePool = ThrowHelper.ThrowArgumentNullExceptionIf(bytePool, nameof(bytePool)); this.m_bytePool = ThrowHelper.ThrowArgumentNullExceptionIf(bytePool, nameof(bytePool));
//设置租用字节数组的最小长度以防为0或者负数
byteSize = Math.Max(16, byteSize);
// 从指定的字节池租用字节数组。 // 从指定的字节池租用字节数组。
this.m_buffer = bytePool.Rent(byteSize); this.m_buffer = bytePool.Rent(byteSize);
} }