diff options
author | Rich Hickey <richhickey@gmail.com> | 2006-06-05 20:08:35 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2006-06-05 20:08:35 +0000 |
commit | b61885dee76bfa7ae6f64c0ef620be5f2fdc8f64 (patch) | |
tree | 33fb6635bfd49d9e3ccedf2142a61e5da8f5a728 /src | |
parent | 30b28f18a3b17d7edc7cd8a694914f37d871b39c (diff) |
fixed array copy in put
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);
}
|