diff options
Diffstat (limited to 'src')
26 files changed, 68 insertions, 48 deletions
diff --git a/src/cli/runtime/AFn.cs b/src/cli/runtime/AFn.cs index 7003b3e8..a14b7cb9 100644 --- a/src/cli/runtime/AFn.cs +++ b/src/cli/runtime/AFn.cs @@ -47,9 +47,9 @@ virtual public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4 /*throws Exception*/ { return throwArity(); - } - -virtual public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) + }
+
+ virtual public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, params Object[] args) /*throws Exception*/ { return throwArity(); @@ -96,7 +96,7 @@ static public Object applyToHelper(IFn ifn, ISeq arglist) /*throws Exception*/ , (arglist = arglist.rest()).first() , (arglist = arglist.rest()).first() , (arglist = arglist.rest()).first() - , arglist.rest()); + , RT.seqToArray(arglist.rest())); } } diff --git a/src/cli/runtime/Accessor.cs b/src/cli/runtime/Accessor.cs index 618e8ef1..cab3b8b3 100644 --- a/src/cli/runtime/Accessor.cs +++ b/src/cli/runtime/Accessor.cs @@ -20,7 +20,7 @@ public Object invoke() /*throws Exception*/ { return AFn.throwArity();
}
/**
* Indexer implements IFn for attr access
* This single arg version is the getter
* @param tld
* @param obj - must be AMap
* @return the value of the attr or nil if not found
* @throws Exception
*/
public Object invoke( Object obj) //throws Exception
{
- return Reflector.invokeInstanceMember(memberName, obj);
}
/**
* Indexer implements IFn for attr access
* This two arg version is the setter
* @param tld
* @param obj - must be AMap
* @param val
* @return val
* @throws Exception
*/
public Object invoke( Object obj, Object val) //throws Exception
{
return Reflector.invokeInstanceMember(memberName,obj,val);
}
public Object invoke( Object arg1, Object arg2, Object arg3) //throws Exception
{
return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3);
}
public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4) //throws Exception
{
return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4);
}
public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5)
//throws Exception
{
return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4,arg5);
}
public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args)
//throws Exception
{
return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4,arg5,args);
}
+ return Reflector.invokeInstanceMember(memberName, obj);
}
/**
* Indexer implements IFn for attr access
* This two arg version is the setter
* @param tld
* @param obj - must be AMap
* @param val
* @return val
* @throws Exception
*/
public Object invoke( Object obj, Object val) //throws Exception
{
return Reflector.invokeInstanceMember(memberName,obj,val);
}
public Object invoke( Object arg1, Object arg2, Object arg3) //throws Exception
{
return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3);
}
public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4) //throws Exception
{
return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4);
}
public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5)
//throws Exception
{
return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4,arg5);
}
public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, params Object[] args)
//throws Exception
{
return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4,arg5,args);
}
public Object applyTo( ISeq arglist) /*throws Exception*/ {
return AFn.applyToHelper(this, arglist);
diff --git a/src/cli/runtime/IFn.cs b/src/cli/runtime/IFn.cs index bc6c60e6..b2fd7c7e 100644 --- a/src/cli/runtime/IFn.cs +++ b/src/cli/runtime/IFn.cs @@ -30,7 +30,7 @@ Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5) /*throws Exception*/; Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, - ISeq args) /*throws Exception*/; + params Object[] args) /*throws Exception*/; Object applyTo( ISeq arglist) /*throws Exception*/; } diff --git a/src/cli/runtime/Keyword.cs b/src/cli/runtime/Keyword.cs index 34c893d6..90e862b9 100644 --- a/src/cli/runtime/Keyword.cs +++ b/src/cli/runtime/Keyword.cs @@ -42,7 +42,7 @@ public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object return AFn.throwArity();
}
-public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args)
+public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, params Object[] args)
/*throws Exception*/
{
return AFn.throwArity();
diff --git a/src/cli/runtime/RT.cs b/src/cli/runtime/RT.cs index 8270a2c9..e3129c23 100644 --- a/src/cli/runtime/RT.cs +++ b/src/cli/runtime/RT.cs @@ -249,6 +249,14 @@ static public Cons arrayToList(Object[] a) return ret;
}
+static public Object[] seqToArray(ISeq seq) {
+ int len = length(seq);
+ Object[] ret = new Object[len];
+ for(int i=0;seq != null;++i, seq = seq.rest())
+ ret[i] = seq.first();
+ return ret;
+}
+
static public int length(ISeq list)
{
int i = 0;
diff --git a/src/cli/runtime/Reflector.cs b/src/cli/runtime/Reflector.cs index af547877..f28adc10 100644 --- a/src/cli/runtime/Reflector.cs +++ b/src/cli/runtime/Reflector.cs @@ -127,7 +127,11 @@ public static Object invokeInstanceMember(String name, Object target) //throws E return prepRet(p.GetValue(target, new Object[]{boxArg(p.GetIndexParameters()[0].ParameterType,arg1)}));
p.SetValue(target,boxArg(p.PropertyType,arg1),null);
return arg1;
- }
return invokeInstanceMethod(name, target, new Object[]{arg1});
}
public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2) //throws Exception
{
return invokeInstanceMethod(name, target, new Object[]{arg1, arg2});
}
public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2, Object arg3)
//throws Exception
{
return invokeInstanceMethod(name, target, new Object[]{arg1, arg2, arg3});
}
public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2, Object arg3,
Object arg4)
//throws Exception
{
return invokeInstanceMethod(name, target, new Object[]{arg1, arg2, arg3, arg4});
}
public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2, Object arg3,
Object arg4,
ISeq arglist)
//throws Exception
{
Object[] args = new Object[4 + RT.length(arglist)];
args[0] = arg1;
args[1] = arg2;
args[2] = arg3;
args[3] = arg4;
for(int i = 4; arglist != null; i++, arglist = arglist.rest())
args[i] = arglist.first();
return invokeInstanceMethod(name, target, args);
}
+ }
return invokeInstanceMethod(name, target, new Object[]{arg1});
}
public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2) //throws Exception
{
return invokeInstanceMethod(name, target, new Object[]{arg1, arg2});
}
public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2, Object arg3)
//throws Exception
{
return invokeInstanceMethod(name, target, new Object[]{arg1, arg2, arg3});
}
public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2, Object arg3,
Object arg4)
//throws Exception
{
return invokeInstanceMethod(name, target, new Object[]{arg1, arg2, arg3, arg4});
}
public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2, Object arg3,
Object arg4,
+ params Object[] arglist)
//throws Exception
{
Object[] args = new Object[4 + arglist.Length];
args[0] = arg1;
args[1] = arg2;
args[2] = arg3;
args[3] = arg4;
+ if (arglist.Length > 0)
+ Array.Copy(arglist, 0, args, 4, arglist.Length);
+ return invokeInstanceMethod(name, target, args);
}
public static FieldInfo getField(Type t, string name,bool statics)
{
diff --git a/src/cli/runtime/RestFn0.cs b/src/cli/runtime/RestFn0.cs index bdcc73f1..d440d924 100644 --- a/src/cli/runtime/RestFn0.cs +++ b/src/cli/runtime/RestFn0.cs @@ -56,10 +56,10 @@ override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg return doInvoke( RT.list(arg1, arg2, arg3, arg4, arg5)); } -override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, params Object[] args) /*throws Exception*/ { - return doInvoke( RT.listStar(arg1, arg2, arg3, arg4, arg5, args)); + return doInvoke( RT.listStar(arg1, arg2, arg3, arg4, arg5, RT.seq(args))); } } }
\ No newline at end of file diff --git a/src/cli/runtime/RestFn1.cs b/src/cli/runtime/RestFn1.cs index b5d0d786..4a86be0b 100644 --- a/src/cli/runtime/RestFn1.cs +++ b/src/cli/runtime/RestFn1.cs @@ -59,10 +59,10 @@ override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg return doInvoke( arg1, RT.list(arg2, arg3, arg4, arg5)); } -override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, params Object[] args) /*throws Exception*/ { - return doInvoke( arg1, RT.listStar(arg2, arg3, arg4, arg5, args)); + return doInvoke( arg1, RT.listStar(arg2, arg3, arg4, arg5, RT.seq(args))); } } diff --git a/src/cli/runtime/RestFn2.cs b/src/cli/runtime/RestFn2.cs index 8ec0e07b..dcaf6400 100644 --- a/src/cli/runtime/RestFn2.cs +++ b/src/cli/runtime/RestFn2.cs @@ -60,10 +60,10 @@ override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg return doInvoke( arg1, arg2, RT.list(arg3, arg4, arg5)); } -override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, params Object[] args) /*throws Exception*/ { - return doInvoke( arg1, arg2, RT.listStar(arg3, arg4, arg5, args)); + return doInvoke( arg1, arg2, RT.listStar(arg3, arg4, arg5, RT.seq(args))); } } } diff --git a/src/cli/runtime/RestFn3.cs b/src/cli/runtime/RestFn3.cs index 267a3e08..3775e997 100644 --- a/src/cli/runtime/RestFn3.cs +++ b/src/cli/runtime/RestFn3.cs @@ -62,10 +62,10 @@ override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg return doInvoke( arg1, arg2, arg3, RT.list(arg4, arg5)); } -override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, params Object[] args) /*throws Exception*/ { - return doInvoke( arg1, arg2, arg3, RT.listStar(arg4, arg5, args)); + return doInvoke( arg1, arg2, arg3, RT.listStar(arg4, arg5, RT.seq(args))); } } }
\ No newline at end of file diff --git a/src/cli/runtime/RestFn4.cs b/src/cli/runtime/RestFn4.cs index c3c73323..7e534ca9 100644 --- a/src/cli/runtime/RestFn4.cs +++ b/src/cli/runtime/RestFn4.cs @@ -64,10 +64,10 @@ override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg return doInvoke( arg1, arg2, arg3, arg4, RT.list(arg5)); } -override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, params Object[] args) /*throws Exception*/ { - return doInvoke( arg1, arg2, arg3, arg4, RT.listStar(arg5, args)); + return doInvoke( arg1, arg2, arg3, arg4, RT.listStar(arg5, RT.seq(args))); } } } diff --git a/src/cli/runtime/RestFn5.cs b/src/cli/runtime/RestFn5.cs index 2ec32b64..bd3dcc67 100644 --- a/src/cli/runtime/RestFn5.cs +++ b/src/cli/runtime/RestFn5.cs @@ -68,10 +68,10 @@ override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg return doInvoke( arg1, arg2, arg3, arg4, arg5, null); } -override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, params Object[] args) /*throws Exception*/ { - return doInvoke( arg1, arg2, arg3, arg4, arg5, args); + return doInvoke( arg1, arg2, arg3, arg4, arg5, RT.seq(args)); } } } diff --git a/src/cli/runtime/Var.cs b/src/cli/runtime/Var.cs index f62d8365..9da1ef31 100644 --- a/src/cli/runtime/Var.cs +++ b/src/cli/runtime/Var.cs @@ -52,5 +52,5 @@ Binding getThreadBinding()
{ else
newtb = tb.put(thread, b);
} while (tb != Interlocked.CompareExchange(ref threadBindings, newtb, tb));
-}
override public Object invoke() /*throws Exception*/
{
return fn.invoke();
}
override public Object invoke( Object arg1) /*throws Exception*/
{
return fn.invoke(arg1);
}
override public Object invoke( Object arg1, Object arg2) /*throws Exception*/
{
return fn.invoke(arg1,arg2);
}
override public Object invoke( Object arg1, Object arg2, Object arg3) /*throws Exception*/
{
return fn.invoke(arg1,arg2,arg3);
}
override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4) /*throws Exception*/
{
return fn.invoke(arg1,arg2,arg3,arg4);
}
override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5)
/*throws Exception*/
{
return fn.invoke(arg1,arg2,arg3,arg4,arg5);
}
override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args)
/*throws Exception*/
{
return fn.invoke(arg1,arg2,arg3,arg4,arg5,args);
}
}
+}
override public Object invoke() /*throws Exception*/
{
return fn.invoke();
}
override public Object invoke( Object arg1) /*throws Exception*/
{
return fn.invoke(arg1);
}
override public Object invoke( Object arg1, Object arg2) /*throws Exception*/
{
return fn.invoke(arg1,arg2);
}
override public Object invoke( Object arg1, Object arg2, Object arg3) /*throws Exception*/
{
return fn.invoke(arg1,arg2,arg3);
}
override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4) /*throws Exception*/
{
return fn.invoke(arg1,arg2,arg3,arg4);
}
override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5)
/*throws Exception*/
{
return fn.invoke(arg1,arg2,arg3,arg4,arg5);
}
override public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, params Object[] args)
/*throws Exception*/
{
return fn.invoke(arg1,arg2,arg3,arg4,arg5,args);
}
}
}
diff --git a/src/jvm/clojure/lang/AFn.java b/src/jvm/clojure/lang/AFn.java index c543bab6..cac16066 100644 --- a/src/jvm/clojure/lang/AFn.java +++ b/src/jvm/clojure/lang/AFn.java @@ -45,7 +45,7 @@ public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object return throwArity(); } -public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object... args) throws Exception { return throwArity(); @@ -90,7 +90,7 @@ static public Object applyToHelper(IFn ifn, ISeq arglist) throws Exception , (arglist = arglist.rest()).first() , (arglist = arglist.rest()).first() , (arglist = arglist.rest()).first() - , arglist.rest()); + , RT.seqToArray(arglist.rest())); } } diff --git a/src/jvm/clojure/lang/Accessor.java b/src/jvm/clojure/lang/Accessor.java index 58ec3d24..450e7633 100644 --- a/src/jvm/clojure/lang/Accessor.java +++ b/src/jvm/clojure/lang/Accessor.java @@ -68,7 +68,7 @@ public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4,arg5); } -public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object... args) throws Exception { return Reflector.invokeInstanceMember(memberName,arg1,arg2,arg3,arg4,arg5,args); diff --git a/src/jvm/clojure/lang/IFn.java b/src/jvm/clojure/lang/IFn.java index e2b6a4f5..e6f9b474 100644 --- a/src/jvm/clojure/lang/IFn.java +++ b/src/jvm/clojure/lang/IFn.java @@ -28,7 +28,7 @@ public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object throws Exception; public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, - ISeq args) throws Exception; + Object... args) throws Exception; public Object applyTo(ISeq arglist) throws Exception; } diff --git a/src/jvm/clojure/lang/Keyword.java b/src/jvm/clojure/lang/Keyword.java index d1e1edb1..0062db2f 100644 --- a/src/jvm/clojure/lang/Keyword.java +++ b/src/jvm/clojure/lang/Keyword.java @@ -75,7 +75,7 @@ public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object return AFn.throwArity(); } -public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object... args) throws Exception { return AFn.throwArity(); diff --git a/src/jvm/clojure/lang/RT.java b/src/jvm/clojure/lang/RT.java index da66e970..a9b074a7 100644 --- a/src/jvm/clojure/lang/RT.java +++ b/src/jvm/clojure/lang/RT.java @@ -251,6 +251,14 @@ static public Cons arrayToList(Object[] a) throws Exception { return ret; } +static public Object[] seqToArray(ISeq seq) throws Exception { + int len = length(seq); + Object[] ret = new Object[len]; + for(int i=0;seq != null;++i, seq = seq.rest()) + ret[i] = seq.first(); + return ret; +} + static public int length(ISeq list) throws Exception { int i = 0; for(ISeq c = list; c != null; c = c.rest()) diff --git a/src/jvm/clojure/lang/Reflector.java b/src/jvm/clojure/lang/Reflector.java index c4eb9d7e..13d9bcd3 100644 --- a/src/jvm/clojure/lang/Reflector.java +++ b/src/jvm/clojure/lang/Reflector.java @@ -167,17 +167,17 @@ public static Object invokeInstanceMember(String name, Object target, Object arg public static Object invokeInstanceMember(String name, Object target, Object arg1, Object arg2, Object arg3, Object arg4, - ISeq arglist) + Object... args) throws Exception { - Object[] args = new Object[4 + RT.length(arglist)]; - args[0] = arg1; - args[1] = arg2; - args[2] = arg3; - args[3] = arg4; - for(int i = 4; arglist != null; i++, arglist = arglist.rest()) - args[i] = arglist.first(); - return invokeInstanceMethod(name, target, args); + Object[] arguments = new Object[4 + args.length]; + arguments[0] = arg1; + arguments[1] = arg2; + arguments[2] = arg3; + arguments[3] = arg4; + if(args.length > 0) + System.arraycopy(args, 0, arguments, 4, args.length); + return invokeInstanceMethod(name, target, arguments); } diff --git a/src/jvm/clojure/lang/RestFn0.java b/src/jvm/clojure/lang/RestFn0.java index 914b02c2..c3d2b355 100644 --- a/src/jvm/clojure/lang/RestFn0.java +++ b/src/jvm/clojure/lang/RestFn0.java @@ -52,9 +52,9 @@ public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object return doInvoke( RT.list(arg1, arg2, arg3, arg4, arg5)); } -public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object... args) throws Exception { - return doInvoke( RT.listStar(arg1, arg2, arg3, arg4, arg5, args)); + return doInvoke( RT.listStar(arg1, arg2, arg3, arg4, arg5, RT.seq(args))); } } diff --git a/src/jvm/clojure/lang/RestFn1.java b/src/jvm/clojure/lang/RestFn1.java index 3f846893..7f87d74c 100644 --- a/src/jvm/clojure/lang/RestFn1.java +++ b/src/jvm/clojure/lang/RestFn1.java @@ -56,10 +56,10 @@ public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object return doInvoke( arg1, RT.list(arg2, arg3, arg4, arg5)); } -public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object... args) throws Exception { - return doInvoke( arg1, RT.listStar(arg2, arg3, arg4, arg5, args)); + return doInvoke( arg1, RT.listStar(arg2, arg3, arg4, arg5, RT.seq(args))); } } diff --git a/src/jvm/clojure/lang/RestFn2.java b/src/jvm/clojure/lang/RestFn2.java index b65bc28e..53299931 100644 --- a/src/jvm/clojure/lang/RestFn2.java +++ b/src/jvm/clojure/lang/RestFn2.java @@ -57,10 +57,10 @@ public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object return doInvoke( arg1, arg2, RT.list(arg3, arg4, arg5)); } -public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object... args) throws Exception { - return doInvoke( arg1, arg2, RT.listStar(arg3, arg4, arg5, args)); + return doInvoke( arg1, arg2, RT.listStar(arg3, arg4, arg5, RT.seq(args))); } } diff --git a/src/jvm/clojure/lang/RestFn3.java b/src/jvm/clojure/lang/RestFn3.java index 7bba686d..9cdcbbb9 100644 --- a/src/jvm/clojure/lang/RestFn3.java +++ b/src/jvm/clojure/lang/RestFn3.java @@ -59,9 +59,9 @@ public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object return doInvoke( arg1, arg2, arg3, RT.list(arg4, arg5)); } -public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object... args) throws Exception { - return doInvoke( arg1, arg2, arg3, RT.listStar(arg4, arg5, args)); + return doInvoke( arg1, arg2, arg3, RT.listStar(arg4, arg5, RT.seq(args))); } } diff --git a/src/jvm/clojure/lang/RestFn4.java b/src/jvm/clojure/lang/RestFn4.java index d8518d41..b65c312d 100644 --- a/src/jvm/clojure/lang/RestFn4.java +++ b/src/jvm/clojure/lang/RestFn4.java @@ -61,10 +61,10 @@ public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object return doInvoke( arg1, arg2, arg3, arg4, RT.list(arg5)); } -public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object... args) throws Exception { - return doInvoke( arg1, arg2, arg3, arg4, RT.listStar(arg5, args)); + return doInvoke( arg1, arg2, arg3, arg4, RT.listStar(arg5, RT.seq(args))); } } diff --git a/src/jvm/clojure/lang/RestFn5.java b/src/jvm/clojure/lang/RestFn5.java index 52c1d3ce..257d07a3 100644 --- a/src/jvm/clojure/lang/RestFn5.java +++ b/src/jvm/clojure/lang/RestFn5.java @@ -65,9 +65,9 @@ public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object return doInvoke( arg1, arg2, arg3, arg4, arg5, null); } -public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +public Object invoke( Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object... args) throws Exception { - return doInvoke( arg1, arg2, arg3, arg4, arg5, args); + return doInvoke( arg1, arg2, arg3, arg4, arg5, RT.seq(args)); } } diff --git a/src/jvm/clojure/lang/Var.java b/src/jvm/clojure/lang/Var.java index afae0caa..a04c8f2a 100644 --- a/src/jvm/clojure/lang/Var.java +++ b/src/jvm/clojure/lang/Var.java @@ -134,7 +134,7 @@ public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object return fn.invoke(arg1, arg2, arg3, arg4, arg5); } -public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, ISeq args) +public Object invoke(Object arg1, Object arg2, Object arg3, Object arg4, Object arg5, Object... args) throws Exception { return fn.invoke(arg1, arg2, arg3, arg4, arg5, args); } |