summaryrefslogtreecommitdiff
path: root/src/jvm/clojure
diff options
context:
space:
mode:
authorRich Hickey <richhickey@gmail.com>2010-02-09 14:51:24 -0500
committerRich Hickey <richhickey@gmail.com>2010-02-09 14:51:24 -0500
commitd4bfd14ddd426b9d6f72fb52d8fa5257a62fd55c (patch)
tree1833e44eb9d0bb42ee2af1008a685226e9e3ca38 /src/jvm/clojure
parent2855e34106b2cacd4614f2b7e31f1536b4b849bc (diff)
added object-array
Diffstat (limited to 'src/jvm/clojure')
-rw-r--r--src/jvm/clojure/lang/RT.java14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java
index 044cd9ea..9fa16a4c 100644
--- a/src/jvm/clojure/lang/RT.java
+++ b/src/jvm/clojure/lang/RT.java
@@ -1075,8 +1075,18 @@ static public ISeq arrayToList(Object[] a) throws Exception{
return ret;
}
-static public Object[] objectArray(int n){
- return new Object[n];
+static public Object[] object_array(Object sizeOrSeq){
+ if(sizeOrSeq instanceof Number)
+ return new Object[((Number) sizeOrSeq).intValue()];
+ else
+ {
+ ISeq s = RT.seq(sizeOrSeq);
+ int size = RT.count(s);
+ Object[] ret = new Object[size];
+ for(int i = 0; i < size && s != null; i++, s = s.next())
+ ret[i] = s.first();
+ return ret;
+ }
}
static public Object[] toArray(Object coll) throws Exception{