Mercurial Hosting > luan
diff src/luan/LuaJavaFunction.java @ 12:9cea1aea5eef
CmdLine can run files
git-svn-id: https://luan-java.googlecode.com/svn/trunk@13 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Fri, 23 Nov 2012 10:37:40 +0000 |
parents | 24fd6381caca |
children | c93d8c781853 |
line wrap: on
line diff
--- a/src/luan/LuaJavaFunction.java Thu Nov 22 10:51:56 2012 +0000 +++ b/src/luan/LuaJavaFunction.java Fri Nov 23 10:37:40 2012 +0000 @@ -25,7 +25,7 @@ } } - @Override public Object[] call(Object... args) { + @Override public Object[] call(LuaState lua,Object... args) { args = fixArgs(args); Object rtn; try { @@ -76,15 +76,19 @@ public Object[] convert(Object obj); } - private static final Object[] EMPTY = new Object[0]; - private static final RtnConverter RTN_EMPTY = new RtnConverter() { public Object[] convert(Object obj) { - return EMPTY; + return EMPTY_RTN; } }; - private static final RtnConverter RTN_SAME = new RtnConverter() { + private static final RtnConverter RTN_ARRAY = new RtnConverter() { + public Object[] convert(Object obj) { + return (Object[])obj; + } + }; + + private static final RtnConverter RTN_ONE = new RtnConverter() { public Object[] convert(Object obj) { return new Object[]{obj}; } @@ -112,7 +116,9 @@ || rtnType == Double.TYPE ) return RTN_NUMBER; - return RTN_SAME; + if( rtnType.isArray() ) + return RTN_ARRAY; + return RTN_ONE; }