From f238be6003b7b2350a5457c3798ebef9d4fbdfa7 Mon Sep 17 00:00:00 2001 From: Adam Hathcock Date: Wed, 29 Oct 2025 10:35:03 +0000 Subject: [PATCH] add arraypool usage in init --- .../Compressors/Rar/UnpackV2017/Unpack.unpack_cpp.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack_cpp.cs b/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack_cpp.cs index 6ee5463a..d7890e94 100644 --- a/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack_cpp.cs +++ b/src/SharpCompress/Compressors/Rar/UnpackV2017/Unpack.unpack_cpp.cs @@ -1,6 +1,7 @@ #nullable disable using System; +using System.Buffers; using SharpCompress.Common; using static SharpCompress.Compressors.Rar.UnpackV2017.PackDef; using static SharpCompress.Compressors.Rar.UnpackV2017.UnpackGlobal; @@ -110,7 +111,7 @@ internal sealed partial class Unpack : BitInput throw new InvalidFormatException("Grow && Fragmented"); } - var NewWindow = Fragmented ? null : new byte[WinSize]; + var NewWindow = Fragmented ? null : ArrayPool.Shared.Rent((int)WinSize); if (NewWindow == null) { @@ -126,6 +127,7 @@ internal sealed partial class Unpack : BitInput if (Window != null) // If allocated by preceding files. { //free(Window); + ArrayPool.Shared.Return(Window); Window = null; } FragWindow.Init(WinSize);