Refactor luajava method mapping computation.

This commit is contained in:
James Roseborough
2010-04-26 05:16:11 +00:00
parent 2f222c0f8a
commit 23434069c8

View File

@@ -95,11 +95,12 @@ public class LuajavaLib extends OneArgFunction {
// get constructor
final LuaValue c = args.checkvalue(1);
final Class clazz = (opcode==NEWINSTANCE? Class.forName(c.tojstring()): (Class) c.checkuserdata(Class.class));
final long paramssig = LuajavaLib.paramsSignatureOf( args );
final Varargs consargs = args.subargs(2);
final long paramssig = LuajavaLib.paramsSignatureOf( consargs );
final Constructor con = resolveConstructor( clazz, paramssig );
// coerce args, construct instance
Object[] cargs = CoerceLuaToJava.coerceArgs( args, con.getParameterTypes() );
Object[] cargs = CoerceLuaToJava.coerceArgs( consargs, con.getParameterTypes() );
Object o = con.newInstance( cargs );
// return result