From 7c24c84226680524cdfc5e43c8fece0ee838ee8f Mon Sep 17 00:00:00 2001 From: Waqas Hussain Date: Wed, 7 Jan 2009 20:03:59 +0500 Subject: modulemanager: module.unload now gets called when modules are being unloaded --- core/modulemanager.lua | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'core') diff --git a/core/modulemanager.lua b/core/modulemanager.lua index 354d8810..f782f174 100644 --- a/core/modulemanager.lua +++ b/core/modulemanager.lua @@ -35,6 +35,7 @@ local pairs, ipairs = pairs, ipairs; local t_insert = table.insert; local type = type; local next = next; +local rawget = rawget; local tostring, print = tostring, print; @@ -134,12 +135,12 @@ function unload(host, name, ...) local mod = modulemap[host] and modulemap[host][name]; if not mod then return nil, "module-not-loaded"; end - --[[if type(mod.unload) == "function" then - local ok, err = pcall(mod.unload, ...) + if type(rawget(mod, "unload")) == "function" then + local ok, err = pcall(rawget(mod, "unload"), ...) if (not ok) and err then log("warn", "Non-fatal error unloading module '%s' from '%s': %s", name, host, err); end - end]] + end modulemap[host][name] = nil; features_table:remove(host, name); local params = handler_table:get(host, name); -- , {module.host, origin_type, tag, xmlns} -- cgit v1.2.3