summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRedwarx008 <50837890+Redwarx008@users.noreply.github.com>2023-03-26 21:14:08 +0800
committerYuri Sizov <yuris@humnom.net>2023-03-30 19:21:14 +0200
commit493e39860dd5648fc0886b3e59772938158eedab (patch)
tree344bf9e1b223f47f5e01f0cad332ad07a8bb40ef
parentfe71d33033d178f7c437938313a213746f3662c3 (diff)
C#: Fix Array.AddRange index out of bounds
Fix Array.AddRange index out of bounds (cherry picked from commit eb1fb254a649efe128a3d993b7bd31486e9356e1)
-rw-r--r--modules/mono/glue/GodotSharp/GodotSharp/Core/Array.cs6
1 files changed, 4 insertions, 2 deletions
diff --git a/modules/mono/glue/GodotSharp/GodotSharp/Core/Array.cs b/modules/mono/glue/GodotSharp/GodotSharp/Core/Array.cs
index 8598c32760..5163ea5113 100644
--- a/modules/mono/glue/GodotSharp/GodotSharp/Core/Array.cs
+++ b/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;