diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/org/clojure/runtime/ArrayMap.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/org/clojure/runtime/ArrayMap.java b/src/org/clojure/runtime/ArrayMap.java index 9087d1f1..89e95e38 100644 --- a/src/org/clojure/runtime/ArrayMap.java +++ b/src/org/clojure/runtime/ArrayMap.java @@ -72,8 +72,10 @@ public IMap put(Object key, Object val) { else //didn't have key, grow
{
newArray = new Object[array.length + 2];
- newArray[array.length] = key;
- newArray[array.length + 1] = val;
+ if(array.length > 0)
+ System.arraycopy(array,0,newArray,2,array.length);
+ newArray[0] = key;
+ newArray[1] = val;
}
return new ArrayMap(newArray);
}
|