Mercurial Hosting > luan
diff core/src/luan/modules/JavaLuan.java @ 404:d55e873e1f0d
metatables now only apply to tables
author | Franklin Schmidt <fschmidt@gmail.com> |
---|---|
date | Wed, 29 Apr 2015 07:04:40 -0600 |
parents | 62b457c50594 |
children | b31d614343e8 |
line wrap: on
line diff
--- a/core/src/luan/modules/JavaLuan.java Tue Apr 28 22:49:33 2015 -0600 +++ b/core/src/luan/modules/JavaLuan.java Wed Apr 29 07:04:40 2015 -0600 @@ -143,8 +143,9 @@ } } - public static void __newindex(LuanState luan,Object obj,Object key,Object value) throws LuanException { - checkJava(luan); + public static boolean __newindex(LuanState luan,Object obj,Object key,Object value) throws LuanException { + if( !luan.currentEnvironment().hasJava() ) + return false; if( obj instanceof Static ) { if( key instanceof String ) { String name = (String)key; @@ -155,7 +156,7 @@ if( members.size() != 1 ) throw new RuntimeException("not field '"+name+"' of "+obj); setMember(obj,members,value); - return; + return true; } } throw luan.exception("invalid member '"+key+"' for: "+obj); @@ -165,7 +166,7 @@ Integer i = Luan.asInteger(key); if( i != null ) { Array.set(obj,i,value); - return; + return true; } throw luan.exception("invalid member '"+key+"' for java array: "+obj); } @@ -176,7 +177,7 @@ if( members.size() != 1 ) throw new RuntimeException("not field '"+name+"' of "+obj); setMember(obj,members,value); - return; + return true; } } throw luan.exception("invalid member '"+key+"' for java object: "+obj);