소스 검색

Merge pull request #75357 from Redwarx008/fix-Godot.Collections.Array.AddRange-index-out-of-bounds

C#: Fix `Array.AddRange` index out of bounds
Yuri Sizov 2 년 전
부모
커밋
dbf1a7277f
1개의 변경된 파일4개의 추가작업 그리고 2개의 파일을 삭제
  1. 4 2
      modules/mono/glue/GodotSharp/GodotSharp/Core/Array.cs

+ 4 - 2
modules/mono/glue/GodotSharp/GodotSharp/Core/Array.cs

@@ -554,6 +554,7 @@ namespace Godot.Collections
             // instead of growing it as we add items.
             if (collection.TryGetNonEnumeratedCount(out int count))
             {
+                int oldCount = Count;
                 Resize(Count + count);
 
                 using var enumerator = collection.GetEnumerator();
@@ -561,7 +562,7 @@ namespace Godot.Collections
                 for (int i = 0; i < count; i++)
                 {
                     enumerator.MoveNext();
-                    this[count + i] = Variant.From(enumerator.Current);
+                    this[oldCount + i] = Variant.From(enumerator.Current);
                 }
 
                 return;
@@ -1578,6 +1579,7 @@ namespace Godot.Collections
             // instead of growing it as we add items.
             if (collection.TryGetNonEnumeratedCount(out int count))
             {
+                int oldCount = Count;
                 Resize(Count + count);
 
                 using var enumerator = collection.GetEnumerator();
@@ -1585,7 +1587,7 @@ namespace Godot.Collections
                 for (int i = 0; i < count; i++)
                 {
                     enumerator.MoveNext();
-                    this[count + i] = enumerator.Current;
+                    this[oldCount + i] = enumerator.Current;
                 }
 
                 return;