diff options
Diffstat (limited to 'src/jvm')
-rw-r--r-- | src/jvm/clojure/lang/RT.java | 14 |
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{ |