summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2007-09-19 21:19:19 +0000
committerRich Hickey <richhickey@gmail.com>2007-09-19 21:19:19 +0000
commitf745f2189d239572e3247d23384b0d2bc9138c8d (patch)
treed955403ac947dd4391461aa8af3ffaebba9be25a /src
parent7aac33d1447ccea5ef6a70318ea67085af994a68 (diff)
refactoring
Diffstat (limited to 'src')
-rw-r--r--src/boot.clj3
-rw-r--r--src/jvm/clojure/lang/Compiler.java2
-rw-r--r--src/jvm/clojure/lang/PersistentVector.java4
-rw-r--r--src/jvm/clojure/lang/RT.java2
4 files changed, 7 insertions, 4 deletions
diff --git a/src/boot.clj b/src/boot.clj
index 3e82cea8..c711e27a 100644
--- a/src/boot.clj
+++ b/src/boot.clj
@@ -209,6 +209,9 @@
(defn pop [list]
(. RT (pop list)))
+(defn nth [coll index]
+ (. RT (nth coll index)))
+
;;map stuff
(defn contains [coll key]
diff --git a/src/jvm/clojure/lang/Compiler.java b/src/jvm/clojure/lang/Compiler.java
index bebdede8..a9552adc 100644
--- a/src/jvm/clojure/lang/Compiler.java
+++ b/src/jvm/clojure/lang/Compiler.java
@@ -515,7 +515,7 @@ static abstract class HostExpr implements Expr{
m = byteValueMethod;
else if(paramType == short.class)
m = shortValueMethod;
- gen.invokeStatic(NUMBER_TYPE, m);
+ gen.invokeVirtual(NUMBER_TYPE, m);
}
}
else
diff --git a/src/jvm/clojure/lang/PersistentVector.java b/src/jvm/clojure/lang/PersistentVector.java
index 0f1c9d0e..d45ef2dc 100644
--- a/src/jvm/clojure/lang/PersistentVector.java
+++ b/src/jvm/clojure/lang/PersistentVector.java
@@ -80,9 +80,9 @@ public Object nth(int i){
public PersistentVector assocN(int i, Object val){
if(i >= 0 && i < cnt)
- {
return new PersistentVector(meta(), cnt, shift, doAssoc(shift, root, i, val));
- }
+ if(i == cnt)
+ return cons(val);
throw new IndexOutOfBoundsException();
}
diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java
index 6186e973..ae46b0fb 100644
--- a/src/jvm/clojure/lang/RT.java
+++ b/src/jvm/clojure/lang/RT.java
@@ -320,7 +320,7 @@ static public Object dissoc(Object key, Object coll){
return ((IPersistentMap) coll).without(key);
}
-static public Object nth(int n, Object coll){
+static public Object nth(Object coll, int n){
if(coll == null)
return null;
else if(coll instanceof IPersistentVector)