summaryrefslogtreecommitdiff
path: root/src/plugins/pglist.c
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2012-12-18 22:44:24 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2012-12-18 22:44:24 (GMT)
commitf4dbbab3190d13e61f125eea51a0ecec2ab9e897 (patch)
tree2362579b428c363e2cca94e0fa89b1e39b7a50e7 /src/plugins/pglist.c
parent64e09a6c3e39785975b5322973ed83734cedb82e (diff)
Created a proper panel for the Android permissions in the editor.
git-svn-id: svn://svn.gna.org/svn/chrysalide/trunk@305 abbe820e-26c8-41b2-8c08-b7b2b41f8b0a
Diffstat (limited to 'src/plugins/pglist.c')
-rw-r--r--src/plugins/pglist.c15
1 files changed, 10 insertions, 5 deletions
diff --git a/src/plugins/pglist.c b/src/plugins/pglist.c
index bca3e6a..6b51690 100644
--- a/src/plugins/pglist.c
+++ b/src/plugins/pglist.c
@@ -151,13 +151,10 @@ void browse_directory_for_plugins(plugins_list *list, const char *dir)
else
{
- plugin = g_plugin_module_new(filename, list->ref);
+ plugin = g_plugin_module_new(filename);
if (plugin != NULL)
- {
- list->plugins = (GPluginModule **)realloc(list->plugins, ++list->plugins_count * sizeof(GPluginModule *));
- list->plugins[list->plugins_count - 1] = plugin;
- }
+ add_plugin_to_main_list(plugin);
}
@@ -253,6 +250,14 @@ void add_plugin_to_main_list(GPluginModule *plugin)
list = &_list;
+ if (plugin->init != NULL && !plugin->init(plugin, list->ref))
+ {
+ log_variadic_message(LMT_ERROR, _("Initialization of plugin '%s' failed !"),
+ plugin->filename);
+ g_object_unref(G_OBJECT(plugin));
+ return;
+ }
+
list->plugins = (GPluginModule **)realloc(list->plugins, ++list->plugins_count * sizeof(GPluginModule *));
list->plugins[list->plugins_count - 1] = plugin;