diff src/luan/lib/JavaLib.java @ 86:6db8f286fa6c

_ENV is per module, not global git-svn-id: https://luan-java.googlecode.com/svn/trunk@87 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Wed, 27 Feb 2013 08:03:51 +0000
parents 4bf3d0c0b6b9
children 6ca02b188dba
line wrap: on
line diff
--- a/src/luan/lib/JavaLib.java	Mon Feb 25 03:53:54 2013 +0000
+++ b/src/luan/lib/JavaLib.java	Wed Feb 27 08:03:51 2013 +0000
@@ -21,6 +21,7 @@
 import luan.MetatableGetter;
 import luan.LuanException;
 import luan.LuanFunction;
+import luan.LuanLoader;
 import luan.LuanJavaFunction;
 import luan.LuanElement;
 
@@ -29,11 +30,12 @@
 
 	public static final String NAME = "java";
 
-	public static final LuanFunction LOADER = new LuanFunction() {
-		public Object[] call(LuanState luan,Object[] args) throws LuanException {
+	public static final LuanLoader LOADER = new LuanLoader() {
+		@Override protected void load(LuanState luan) {
 			luan.addMetatableGetter(mg);
 			LuanTable module = new LuanTable();
-			LuanTable global = luan.global();
+			LuanTable global = new LuanTable();
+			module.put( LuanState._G, global );
 			try {
 				global.put( "import", new LuanJavaFunction(JavaLib.class.getMethod("importClass",LuanState.class,String.class),null) );
 				module.put( "class", new LuanJavaFunction(JavaLib.class.getMethod("getClass",LuanState.class,String.class),null) );
@@ -41,7 +43,7 @@
 			} catch(NoSuchMethodException e) {
 				throw new RuntimeException(e);
 			}
-			return new Object[]{module};
+			luan.loaded().put(NAME,module);
 		}
 	};
 
@@ -298,7 +300,7 @@
 	}
 
 	public static void importClass(LuanState luan,String name) throws LuanException {
-		luan.global().put( name.substring(name.lastIndexOf('.')+1), getClass(luan,name) );
+		luan.currentEnvironment().put( name.substring(name.lastIndexOf('.')+1), getClass(luan,name) );
 	}
 
 	static class AmbiguousJavaFunction extends LuanFunction {