Sfoglia il codice sorgente

[java/cs] fixed issue #1744

Caue Waneck 12 anni fa
parent
commit
b1bd0721a4
2 ha cambiato i file con 12 aggiunte e 5 eliminazioni
  1. 7 3
      std/cs/_std/Array.hx
  2. 5 2
      std/java/_std/Array.hx

+ 7 - 3
std/cs/_std/Array.hx

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

+ 5 - 2
std/java/_std/Array.hx

@@ -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.__a = __a = newArr;
-
-			this.length = newl;
 		}
 
+		if (idx >= length)
+			this.length = idx + 1;
+
 		return __a[idx] = v;
 	}