Comparison

core/modulemanager.lua @ 4728:7c81b04a4fed

modulemanager: Set module.environment before calling add_host, otherwise the module will get the parent's environment (thanks xnyhps and Maranda)
author Matthew Wild <mwild1@gmail.com>
date Fri, 27 Apr 2012 21:37:45 +0100
parent 4665:6be91ca54613
child 4733:791388f90156
comparison
equal deleted inserted replaced
4727:5ebf4096a2e1 4728:7c81b04a4fed
140 host = host, event_handlers = {}, items = {}; 140 host = host, event_handlers = {}, items = {};
141 _log = _log, log = function (self, ...) return _log(...); end; 141 _log = _log, log = function (self, ...) return _log(...); end;
142 },{ 142 },{
143 __index = modulemap["*"][module_name].module; 143 __index = modulemap["*"][module_name].module;
144 }); 144 });
145 local host_module = setmetatable({ module = host_module_api }, { __index = mod });
146 host_module_api.environment = host_module;
145 local ok, result, module_err = call_module_method(mod, "add_host", host_module_api); 147 local ok, result, module_err = call_module_method(mod, "add_host", host_module_api);
146 if not ok or result == false then return nil, ok and module_err or result; end 148 if not ok or result == false then return nil, ok and module_err or result; end
147 local host_module = setmetatable({ module = host_module_api }, { __index = mod });
148 host_module.module.environment = host_module;
149 modulemap[host][module_name] = host_module; 149 modulemap[host][module_name] = host_module;
150 return host_module; 150 return host_module;
151 end 151 end
152 return nil, "global-module-already-loaded"; 152 return nil, "global-module-already-loaded";
153 end 153 end