Mercurial Hosting > luan
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 |