diff options
author | Not Zed <NotZed@Ximian.com> | 2004-11-19 09:34:21 +0800 |
---|---|---|
committer | Michael Zucci <zucchi@src.gnome.org> | 2004-11-19 09:34:21 +0800 |
commit | eccb379e0ca17bb136a05eaafccaa8186420028e (patch) | |
tree | 62ffc46ea0bd48c5f2eb52f0c419bc2df841453c /e-util/e-plugin.c | |
parent | 1faa77c293056736da30f9df7d0c2966416f4bf8 (diff) | |
download | gsoc2013-evolution-eccb379e0ca17bb136a05eaafccaa8186420028e.tar.gz gsoc2013-evolution-eccb379e0ca17bb136a05eaafccaa8186420028e.tar.zst gsoc2013-evolution-eccb379e0ca17bb136a05eaafccaa8186420028e.zip |
if the plugin fails to load just disable it, don't unref it (it may be
2004-11-19 Not Zed <NotZed@Ximian.com>
* 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
Diffstat (limited to 'e-util/e-plugin.c')
-rw-r--r-- | e-util/e-plugin.c | 12 |
1 files changed, 5 insertions, 7 deletions
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); } } |