From eccb379e0ca17bb136a05eaafccaa8186420028e Mon Sep 17 00:00:00 2001 From: Not Zed Date: Fri, 19 Nov 2004 01:34:21 +0000 Subject: if the plugin fails to load just disable it, don't unref it (it may be 2004-11-19 Not Zed * e-plugin.c (ep_load): if the plugin fails to load just disable it, don't unref it (it may be referenced elsewhere). svn path=/trunk/; revision=27944 --- e-util/ChangeLog | 5 +++++ e-util/e-plugin.c | 12 +++++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/e-util/ChangeLog b/e-util/ChangeLog index 4464929ffd..b8e65ac2fa 100644 --- a/e-util/ChangeLog +++ b/e-util/ChangeLog @@ -1,3 +1,8 @@ +2004-11-19 Not Zed + + * e-plugin.c (ep_load): if the plugin fails to load just disable + it, don't unref it (it may be referenced elsewhere). + 2004-11-18 Not Zed * e-plugin.c (epl_loadmodule): split out module loadng code. diff --git a/e-util/e-plugin.c b/e-util/e-plugin.c index d163a8a5ec..6167b1238f 100644 --- a/e-util/e-plugin.c +++ b/e-util/e-plugin.c @@ -333,13 +333,11 @@ ep_load(const char *filename) ep->id = id; ep->path = g_strdup(filename); ep->enabled = ep_check_enabled(id); - if (e_plugin_construct(ep, root) == -1) { - g_object_unref(ep); - } else { - g_hash_table_insert(ep_plugins, ep->id, ep); - pdoc->plugins = g_slist_prepend(pdoc->plugins, ep); - cache |= (ep->hooks_pending != NULL); - } + if (e_plugin_construct(ep, root) == -1) + e_plugin_enable(ep, FALSE); + g_hash_table_insert(ep_plugins, ep->id, ep); + pdoc->plugins = g_slist_prepend(pdoc->plugins, ep); + cache |= (ep->hooks_pending != NULL); } } -- cgit