C#: Fix Array.AddRange index out of bounds

Fix Array.AddRange index out of bounds
This commit is contained in:
Redwarx008 2023-03-26 21:14:08 +08:00
parent 6ef2f358c7
commit eb1fb254a6
1 changed files with 4 additions and 2 deletions

View File

@ -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;