diff options
author | Christophe Grand <christophe@cgrand.net> | 2009-08-10 18:00:23 +0200 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2009-08-26 12:02:56 -0400 |
commit | 307821cbb4c4ff2091f0a2cef0f5e631a900b5c2 (patch) | |
tree | 86ba4cbf1a14d1de5d21b86af27f261df2f171a3 /src | |
parent | 96ff86023ba381c7126467dfa417a0a6e095a884 (diff) |
use transients in createNode
Signed-off-by: Rich Hickey <richhickey@gmail.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/PersistentHashMap2.java | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/jvm/clojure/lang/PersistentHashMap2.java b/src/jvm/clojure/lang/PersistentHashMap2.java index 627dc8cc..6ef57c90 100644 --- a/src/jvm/clojure/lang/PersistentHashMap2.java +++ b/src/jvm/clojure/lang/PersistentHashMap2.java @@ -939,11 +939,11 @@ private static INode createNode(int shift, Object key1, Object val1, int key2has int key1hash = Util.hash(key1); if(key1hash == key2hash) return new HashCollisionNode(null, key1hash, 2, new Object[] {key1, val1, key2, val2}); - // TODO: optimize; Box _ = new Box(null); + AtomicReference<Thread> edit = new AtomicReference<Thread>(); return BitmapIndexedNode.EMPTY - .assoc(shift, key1hash, key1, val1, _) - .assoc(shift, key2hash, key2, val2, _); + .assoc(edit, shift, key1hash, key1, val1, _) + .assoc(edit, shift, key2hash, key2, val2, _); } private static INode createNode(AtomicReference<Thread> edit, int shift, Object key1, Object val1, int key2hash, Object key2, Object val2) { |