From 923f8869a52a0a64ba7ba7c109a18afda90afda5 Mon Sep 17 00:00:00 2001 From: prozolic <42107886+prozolic@users.noreply.github.com> Date: Wed, 26 Jun 2024 22:52:22 +0900 Subject: [PATCH] fix ResizableArray --- src/ObservableCollections/Internal/ResizableArray.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/ObservableCollections/Internal/ResizableArray.cs b/src/ObservableCollections/Internal/ResizableArray.cs index d767a88..ba032d0 100644 --- a/src/ObservableCollections/Internal/ResizableArray.cs +++ b/src/ObservableCollections/Internal/ResizableArray.cs @@ -33,8 +33,10 @@ namespace ObservableCollections.Internal [MethodImpl(MethodImplOptions.NoInlining)] void EnsureCapacity() { - var newArray = array.AsSpan().ToArray(); - ArrayPool.Shared.Return(array!, RuntimeHelpersEx.IsReferenceOrContainsReferences()); + var oldArray = array!; + var newArray = ArrayPool.Shared.Rent(oldArray.Length * 2); + Array.Copy(oldArray, newArray, oldArray.Length); + ArrayPool.Shared.Return(oldArray, RuntimeHelpersEx.IsReferenceOrContainsReferences()); array = newArray; }