diff options
-rw-r--r-- | ChangeLog | 8 | ||||
-rw-r--r-- | src/ephy-extensions-manager.c | 16 |
2 files changed, 16 insertions, 8 deletions
@@ -1,3 +1,11 @@ +2005-01-27 Jean-François Rameau <jframeau@cvs.gnome.org> + + * src/ephy-extensions-manager.c: (unload_extension): + + Extension manager owns only one ref on extensions which + don't implement EphyExtension interface. Only their loader has + to unref them. + 2005-01-26 Christian Persch <chpe@cvs.gnome.org> * src/ephy-fullscreen-popup.c: diff --git a/src/ephy-extensions-manager.c b/src/ephy-extensions-manager.c index 1477b05cd..245c72dfe 100644 --- a/src/ephy-extensions-manager.c +++ b/src/ephy-extensions-manager.c @@ -898,15 +898,15 @@ unload_extension (EphyExtensionsManager *manager, manager->priv->extensions = g_list_remove (manager->priv->extensions, info->extension); - } - /* we own two refs to the extension, the one we added when - * we added it to the priv->extensions list, and the one returned - * from get_object. Release object, and queue a unref, since if the - * extension has its own functions queued in the idle loop, the - * functions must exist in memory before being called. - */ - g_idle_add ((GSourceFunc) idle_unref, info->extension); + /* we own two refs to the extension, the one we added when + * we added it to the priv->extensions list, and the one returned + * from get_object. Release object, and queue a unref, since if the + * extension has its own functions queued in the idle loop, the + * functions must exist in memory before being called. + */ + g_idle_add ((GSourceFunc) idle_unref, info->extension); + } ephy_loader_release_object (info->loader, G_OBJECT (info->extension)); |