Mercurial Hosting > luan
diff src/luan/LuanJavaFunction.java @ 1563:8fbcc4747091
remove LuanFunction.luan
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Mon, 09 Nov 2020 01:37:57 -0700 |
parents | 71f067287642 |
children | 8dd8c556c449 |
line wrap: on
line diff
--- a/src/luan/LuanJavaFunction.java Sun Nov 08 16:50:59 2020 -0700 +++ b/src/luan/LuanJavaFunction.java Mon Nov 09 01:37:57 2020 -0700 @@ -21,16 +21,15 @@ private final ArgConverter[] argConverters; private final Class varArgCls; - public LuanJavaFunction(Luan luan,Method method,Object obj) { - this( luan, JavaMethod.of(method), obj ); + public LuanJavaFunction(Method method,Object obj) { + this( JavaMethod.of(method), obj ); } - public LuanJavaFunction(Luan luan,Constructor constr,Object obj) { - this( luan, JavaMethod.of(constr), obj ); + public LuanJavaFunction(Constructor constr,Object obj) { + this( JavaMethod.of(constr), obj ); } - private LuanJavaFunction(Luan luan,JavaMethod method,Object obj) { - super(luan); + private LuanJavaFunction(JavaMethod method,Object obj) { this.method = method; this.obj = obj; this.rtnConverter = getRtnConverter(method); @@ -42,8 +41,6 @@ } else { this.varArgCls = null; } - if( !takesLuan ) - dontClone(); } @Override public String toString() { @@ -58,9 +55,9 @@ return method.isVarArgs(); } - @Override public Object call(Object[] args) throws LuanException { + @Override public Object call(Luan luan,Object[] args) throws LuanException { try { - args = fixArgs(args); + args = fixArgs(luan,args); return doCall(args); } catch(IllegalArgumentException e) { checkArgs(args); @@ -68,8 +65,8 @@ } } - public Object rawCall(Object[] args) throws LuanException { - args = fixArgs(args); + public Object rawCall(Luan luan,Object[] args) throws LuanException { + args = fixArgs(luan,args); return doCall(args); } @@ -156,7 +153,7 @@ return type; } - private Object[] fixArgs(Object[] args) throws LuanException { + private Object[] fixArgs(Luan luan,Object[] args) throws LuanException { int n = argConverters.length; Object[] rtn; int start = 0; @@ -167,7 +164,7 @@ n++; rtn = new Object[n]; if( takesLuan ) { - rtn[start++] = luan(); + rtn[start++] = luan; } n = argConverters.length; if( varArgCls == null ) {