@@ -478,13 +478,17 @@ import cs.NativeArray;
var __a = __a;
if (idx >= __a.Length)
{
- var newArr = new NativeArray<T>(idx + 1);
+ var len = idx + 1;
+ if (idx == __a.Length)
+ len = (idx << 1) + 1;
+ var newArr = new NativeArray<T>(len);
__a.CopyTo(newArr, 0);
this.__a = __a = newArr;
-
- this.length = cast (idx + 1);
}
+ if (idx >= length)
+ this.length = idx + 1;
+
return __a[idx] = v;
@@ -481,14 +481,17 @@ import java.NativeArray;
if (idx >= __a.length)
var newl = idx + 1;
+ if (idx == __a.length)
+ newl = (idx << 1) + 1;
var newArr = new NativeArray<T>(newl);
if (length > 0)
System.arraycopy(__a, 0, newArr, 0, length);
- this.length = newl;