summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/org/clojure/runtime/ArrayMap.java6
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);
}