comparison src/luan/lib/PackageLib.java @ 112:f5af13062b10

fix previous rev git-svn-id: https://luan-java.googlecode.com/svn/trunk@113 21e917c8-12df-6dd8-5cb6-c86387c605b9
author fschmidt@gmail.com <fschmidt@gmail.com@21e917c8-12df-6dd8-5cb6-c86387c605b9>
date Fri, 23 May 2014 22:52:39 +0000
parents 2428ecfed375
children d7be9b3abf1a
comparison
equal deleted inserted replaced
111:2428ecfed375 112:f5af13062b10
60 LuanTable searchers = (LuanTable)luan.get("Package.searchers"); 60 LuanTable searchers = (LuanTable)luan.get("Package.searchers");
61 if( searchers == null ) 61 if( searchers == null )
62 searchers = new LuanTable(Collections.<Object>singletonList(preloadSearcher)); 62 searchers = new LuanTable(Collections.<Object>singletonList(preloadSearcher));
63 for( Object s : searchers.asList() ) { 63 for( Object s : searchers.asList() ) {
64 LuanFunction searcher = (LuanFunction)s; 64 LuanFunction searcher = (LuanFunction)s;
65 Object[] a = Luan.array(luan.JAVA.call(searcher,"<searcher>",modName)); 65 Object[] a = Luan.array(luan.JAVA.call(searcher,"<searcher>",new Object[]{modName}));
66 if( a.length >= 1 && a[0] instanceof LuanFunction ) { 66 if( a.length >= 1 && a[0] instanceof LuanFunction ) {
67 LuanFunction loader = (LuanFunction)a[0]; 67 LuanFunction loader = (LuanFunction)a[0];
68 a[0] = modName; 68 a[0] = modName;
69 mod = Luan.first(luan.JAVA.call(loader,"<require \""+modName+"\">",a)); 69 mod = Luan.first(luan.JAVA.call(loader,"<require \""+modName+"\">",a));
70 if( mod != null ) { 70 if( mod != null ) {
110 return file==null ? LuanFunction.EMPTY : new Object[]{fileLoader,file}; 110 return file==null ? LuanFunction.EMPTY : new Object[]{fileLoader,file};
111 } 111 }
112 }; 112 };
113 113
114 public static final LuanFunction preloadSearcher = new LuanFunction() { 114 public static final LuanFunction preloadSearcher = new LuanFunction() {
115 @Override public Object[] call(LuanState luan,Object[] args) { 115 @Override public Object call(LuanState luan,Object[] args) {
116 String modName = (String)args[0]; 116 String modName = (String)args[0];
117 Object mod = luan.preload().get(modName); 117 return luan.preload().get(modName);
118 return new Object[]{mod};
119 } 118 }
120 }; 119 };
121 120
122 121
123 122