summaryrefslogtreecommitdiff
path: root/src/jvm
diff options
context:
space:
mode:
Diffstat (limited to 'src/jvm')
-rw-r--r--src/jvm/clojure/lang/IProxy.java5
-rw-r--r--src/jvm/clojure/lang/PersistentArrayMap.java2
-rw-r--r--src/jvm/clojure/lang/RT.java4
3 files changed, 7 insertions, 4 deletions
diff --git a/src/jvm/clojure/lang/IProxy.java b/src/jvm/clojure/lang/IProxy.java
index 7f3630f9..c32521a7 100644
--- a/src/jvm/clojure/lang/IProxy.java
+++ b/src/jvm/clojure/lang/IProxy.java
@@ -14,7 +14,8 @@ package clojure.lang;
public interface IProxy{
-public void __updateClojureFnMappings(IPersistentMap m);
-public IPersistentMap __getClojureFnMappings();
+ public void __initClojureFnMappings(IPersistentMap m);
+ public void __updateClojureFnMappings(IPersistentMap m);
+ public IPersistentMap __getClojureFnMappings();
}
diff --git a/src/jvm/clojure/lang/PersistentArrayMap.java b/src/jvm/clojure/lang/PersistentArrayMap.java
index 070fe1bf..009b1fe8 100644
--- a/src/jvm/clojure/lang/PersistentArrayMap.java
+++ b/src/jvm/clojure/lang/PersistentArrayMap.java
@@ -27,7 +27,7 @@ import java.util.Map;
public class PersistentArrayMap extends APersistentMap{
final Object[] array;
-static final int HASHTABLE_THRESHOLD = 8;
+static final int HASHTABLE_THRESHOLD = 16;
public static final PersistentArrayMap EMPTY = new PersistentArrayMap();
diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java
index ae18bfce..7a31bbdf 100644
--- a/src/jvm/clojure/lang/RT.java
+++ b/src/jvm/clojure/lang/RT.java
@@ -966,7 +966,9 @@ static public double doubleCast(double x){
}
static public IPersistentMap map(Object... init){
- if(init != null && init.length == 2)
+ if(init == null)
+ return PersistentArrayMap.EMPTY;
+ else if(init.length <= PersistentArrayMap.HASHTABLE_THRESHOLD)
return new PersistentArrayMap(init);
return PersistentHashMap.create(init);
}