summaryrefslogtreecommitdiff
path: root/src/jvm
diff options
context:
space:
mode:
Diffstat (limited to 'src/jvm')
-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{