Mercurial Hosting > luan
diff src/luan/lib/JavaLib.java @ 55:9381b23ea9e1
various fixes
git-svn-id: https://luan-java.googlecode.com/svn/trunk@56 21e917c8-12df-6dd8-5cb6-c86387c605b9
author | fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9> |
---|---|
date | Fri, 04 Jan 2013 04:50:18 +0000 |
parents | 28dfd91a816c |
children | c84274b18f0c |
line wrap: on
line diff
--- a/src/luan/lib/JavaLib.java Mon Dec 31 19:45:06 2012 +0000 +++ b/src/luan/lib/JavaLib.java Fri Jan 04 04:50:18 2013 +0000 @@ -12,6 +12,7 @@ import java.util.List; import java.util.ArrayList; import java.util.Iterator; +import java.util.Collections; import luan.Luan; import luan.LuanState; import luan.LuanTable; @@ -110,7 +111,7 @@ } } } - throw new LuanException(luan,LuanElement.JAVA,"invalid index for java object: "+key); + throw new LuanException(luan,LuanElement.JAVA,"invalid member for java object: "+key); } private static Object member(Object obj,List<AccessibleObject> members) throws LuanException { @@ -166,7 +167,10 @@ } memberMap.put(cls,clsMap); } - return clsMap.get(name); + List<AccessibleObject> rtn = clsMap.get(name); + if( rtn==null ) + rtn = Collections.emptyList(); + return rtn; } private static synchronized List<AccessibleObject> getStaticMembers(Class cls,String name) { @@ -222,7 +226,7 @@ @Override public Object[] call(LuanState luan,Object[] args) throws LuanException { for( LuanJavaFunction fn : fnMap.get(args.length) ) { try { - return fn.call(luan,args); + return fn.rawCall(luan,args); } catch(IllegalArgumentException e) {} } throw new LuanException(luan,LuanElement.JAVA,"no method matched args");