summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/jvm/clojure/lang/PersistentArrayIdentityMap.java4
-rw-r--r--src/jvm/clojure/lang/PersistentArrayMap.java12
2 files changed, 12 insertions, 4 deletions
diff --git a/src/jvm/clojure/lang/PersistentArrayIdentityMap.java b/src/jvm/clojure/lang/PersistentArrayIdentityMap.java
index 57a1bf59..400af18b 100644
--- a/src/jvm/clojure/lang/PersistentArrayIdentityMap.java
+++ b/src/jvm/clojure/lang/PersistentArrayIdentityMap.java
@@ -21,6 +21,10 @@ public static PersistentArrayIdentityMap EMPTY = new PersistentArrayIdentityMap(
private PersistentArrayIdentityMap() {
}
+PersistentArrayMap create(Object... init){
+ return new PersistentArrayIdentityMap(init);
+}
+
IPersistentMap empty() {
return EMPTY;
}
diff --git a/src/jvm/clojure/lang/PersistentArrayMap.java b/src/jvm/clojure/lang/PersistentArrayMap.java
index b5c0e39a..7b4a408c 100644
--- a/src/jvm/clojure/lang/PersistentArrayMap.java
+++ b/src/jvm/clojure/lang/PersistentArrayMap.java
@@ -33,6 +33,10 @@ protected PersistentArrayMap(){
this.array = RT.EMPTY_ARRAY;
}
+PersistentArrayMap create(Object... init){
+ return new PersistentArrayMap(init);
+}
+
/**
* This ctor captures/aliases the passed array, so do not modify later
* @param init {key1,val1,key2,val2,...}
@@ -79,7 +83,7 @@ public IPersistentMap put(Object key, Object val) {
newArray[0] = key;
newArray[1] = val;
}
- return new PersistentArrayMap(newArray);
+ return create(newArray);
}
public IPersistentMap remove(Object key) {
@@ -99,7 +103,7 @@ public IPersistentMap remove(Object key) {
d += 2;
}
}
- return new PersistentArrayMap(newArray);
+ return create(newArray);
}
//don't have key, no op
return this;
@@ -109,7 +113,7 @@ IPersistentMap empty() {
return EMPTY;
}
-public Object get(Object key) {
+final public Object get(Object key) {
int i = indexOf(key);
if(i >= 0)
return array[i + 1];
@@ -120,7 +124,7 @@ public int capacity() {
return count();
}
-int indexOf(Object key){
+private int indexOf(Object key){
for(int i=0;i<array.length;i+=2)
{
if(equalKey(array[i],key))