diff options
author | Rich Hickey <richhickey@gmail.com> | 2007-12-12 14:29:13 +0000 |
---|---|---|
committer | Rich Hickey <richhickey@gmail.com> | 2007-12-12 14:29:13 +0000 |
commit | 013ec9ebc82d6e3376e4e7b515ad4e3145fc9019 (patch) | |
tree | 3e0b85ab060146a40ca4ae275668d077088ae16e /src | |
parent | c2d824b9bf74523156a47ffae27eb2a7c76b3074 (diff) |
optimized withMeta
Diffstat (limited to 'src')
-rw-r--r-- | src/jvm/clojure/lang/PersistentList.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/jvm/clojure/lang/PersistentList.java b/src/jvm/clojure/lang/PersistentList.java index 1b92ff1d..ea724ffd 100644 --- a/src/jvm/clojure/lang/PersistentList.java +++ b/src/jvm/clojure/lang/PersistentList.java @@ -58,7 +58,7 @@ public Object peek(){ public IPersistentList pop(){
if(_rest == null)
- return EMPTY.withMeta(meta());
+ return EMPTY.withMeta(_meta);
return _rest;
}
@@ -71,7 +71,9 @@ public ISeq cons(Object o){ }
public PersistentList withMeta(IPersistentMap meta){
- return new PersistentList(meta, _first, _rest, _count);
+ if(meta != _meta)
+ return new PersistentList(meta, _first, _rest, _count);
+ return this;
}
static class EmptyList extends PersistentList{
|