summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2006-06-05 20:08:35 +0000
committerRich Hickey <richhickey@gmail.com>2006-06-05 20:08:35 +0000
commitb61885dee76bfa7ae6f64c0ef620be5f2fdc8f64 (patch)
tree33fb6635bfd49d9e3ccedf2142a61e5da8f5a728 /src
parent30b28f18a3b17d7edc7cd8a694914f37d871b39c (diff)
fixed array copy in put
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);
}