summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2009-02-28 20:06:47 +0000
committerRich Hickey <richhickey@gmail.com>2009-02-28 20:06:47 +0000
commit748c9ca640eb899b581fff479114b6cc3beade4c (patch)
tree9805749397e6143e3e7683fb258e0f8dda490c8c
parent7059dd1345ffa8ee9a5da96bc8aa5ead227a50a5 (diff)
avoid chaining in subvec of subvec
-rw-r--r--src/jvm/clojure/lang/APersistentVector.java7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/jvm/clojure/lang/APersistentVector.java b/src/jvm/clojure/lang/APersistentVector.java
index 70192d3b..8a271b6a 100644
--- a/src/jvm/clojure/lang/APersistentVector.java
+++ b/src/jvm/clojure/lang/APersistentVector.java
@@ -517,6 +517,13 @@ static class SubVector extends APersistentVector{
public SubVector(IPersistentMap meta, IPersistentVector v, int start, int end){
super(meta);
+ if(v instanceof APersistentVector.SubVector)
+ {
+ APersistentVector.SubVector sv = (APersistentVector.SubVector) v;
+ start += sv.start;
+ end += sv.start;
+ v = sv.v;
+ }
this.v = v;
this.start = start;
this.end = end;