summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2006-08-02 00:02:41 +0000
committerRich Hickey <richhickey@gmail.com>2006-08-02 00:02:41 +0000
commit275c906989e19fd8fa3afc152ce8e9153eccb595 (patch)
tree538a08b04dbd4442e7af0a7438fbdbf7765f983e
parentdf7b30a6c1dfd253d63786ed8277ab43329a11dd (diff)
added count member
-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){