summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cli/runtime/PersistentListMap.cs4
-rw-r--r--src/jvm/clojure/lang/PersistentListMap.java6
2 files changed, 7 insertions, 3 deletions
diff --git a/src/cli/runtime/PersistentListMap.cs b/src/cli/runtime/PersistentListMap.cs
index a3896c97..a2d621a7 100644
--- a/src/cli/runtime/PersistentListMap.cs
+++ b/src/cli/runtime/PersistentListMap.cs
@@ -243,12 +243,14 @@ internal class Link : PersistentListMap {
readonly Object _key;
readonly Object _val;
readonly PersistentListMap _rest;
+ readonly int _count;
internal Link(Object key,Object val,PersistentListMap next,IPersistentMap meta){
this._key = key;
this._val = val;
this._rest = next;
this._meta = meta;
+ this._count = 1 + next.count();
}
override public Object key(){
@@ -264,7 +266,7 @@ internal class Link : PersistentListMap {
}
override public int count(){
- return 1 + _rest.count();
+ return _count;
}
override public bool contains(Object key){
diff --git a/src/jvm/clojure/lang/PersistentListMap.java b/src/jvm/clojure/lang/PersistentListMap.java
index c2881363..f8fe6656 100644
--- a/src/jvm/clojure/lang/PersistentListMap.java
+++ b/src/jvm/clojure/lang/PersistentListMap.java
@@ -222,12 +222,14 @@ static class Link extends PersistentListMap {
final Object _key;
final Object _val;
final PersistentListMap _rest;
+ final int _count;
- Link(Object key,Object val,PersistentListMap next,IPersistentMap meta){
+ Link(Object key,Object val,PersistentListMap next,IPersistentMap meta){
this._key = key;
this._val = val;
this._rest = next;
this._meta = meta;
+ this._count = 1 + next.count();
}
public Object key(){
@@ -243,7 +245,7 @@ static class Link extends PersistentListMap {
}
public int count(){
- return 1 + _rest.count();
+ return _count;
}
public boolean contains(Object key){