diff options
| author | Leandro Pereira <leandro@hardinfo.org> | 2010-01-03 17:19:07 -0200 | 
|---|---|---|
| committer | Leandro Pereira <leandro@hardinfo.org> | 2010-01-03 17:19:07 -0200 | 
| commit | 93f39a984398e9f4d187b66eb272ec0bf48845e0 (patch) | |
| tree | 35a14aa48a17c5281a9e6e697aac734233afa9e4 /hardinfo2/util.c | |
| parent | c8bc96a5431c1435be52a268d5a14c13ef90006d (diff) | |
Add a module deinitialization function, so modules can deallocate memory on unload.
Diffstat (limited to 'hardinfo2/util.c')
| -rw-r--r-- | hardinfo2/util.c | 5 | 
1 files changed, 5 insertions, 0 deletions
| diff --git a/hardinfo2/util.c b/hardinfo2/util.c index 87521028..43a3677e 100644 --- a/hardinfo2/util.c +++ b/hardinfo2/util.c @@ -593,6 +593,9 @@ static void module_unload(ShellModule * module)      if (module->dll) {          gchar *name; +        if (module->deinit) +		module->deinit(); +                  name = g_path_get_basename(g_module_name(module->dll));          g_hash_table_foreach_remove(__module_methods, remove_module_methods, name); @@ -697,6 +700,8 @@ static ShellModule *module_load(gchar * filename)          g_module_symbol(module->dll, "hi_module_get_about",     	 	        (gpointer) & (module->aboutfunc)); +        g_module_symbol(module->dll, "hi_module_deinit", +   	 	        (gpointer) & (module->deinit));  	entries = get_module_entries();  	while (entries[i].name) { | 
