aboutsummaryrefslogtreecommitdiffstats
path: root/shell/e-shell.c
diff options
context:
space:
mode:
authorEttore Perazzoli <ettore@src.gnome.org>2000-07-08 01:54:25 +0800
committerEttore Perazzoli <ettore@src.gnome.org>2000-07-08 01:54:25 +0800
commitc2afd80bd66b56db0e6a76f4289a76434a53d445 (patch)
tree4e8b60d446086f1bfba44b40844f399d54b586a9 /shell/e-shell.c
parent243dbca93af49733ab7680e32affb276467899b9 (diff)
downloadgsoc2013-evolution-c2afd80bd66b56db0e6a76f4289a76434a53d445.tar.gz
gsoc2013-evolution-c2afd80bd66b56db0e6a76f4289a76434a53d445.tar.zst
gsoc2013-evolution-c2afd80bd66b56db0e6a76f4289a76434a53d445.zip
Add an extra ref for the CORBA storage BonoboObject so that the number
of refs and unrefs matches again. svn path=/trunk/; revision=3951
Diffstat (limited to 'shell/e-shell.c')
-rw-r--r--shell/e-shell.c14
1 files changed, 10 insertions, 4 deletions
diff --git a/shell/e-shell.c b/shell/e-shell.c
index d767707c38..8a262b4a8a 100644
--- a/shell/e-shell.c
+++ b/shell/e-shell.c
@@ -258,17 +258,23 @@ static gboolean
setup_corba_storages (EShell *shell)
{
EShellPrivate *priv;
+ ECorbaStorageRegistry *corba_storage_registry;
priv = shell->priv;
g_assert (priv->storage_set != NULL);
- priv->corba_storage_registry = e_corba_storage_registry_new (priv->storage_set);
+ corba_storage_registry = e_corba_storage_registry_new (priv->storage_set);
- if (priv->corba_storage_registry == NULL)
+ if (corba_storage_registry == NULL)
return FALSE;
- bonobo_object_add_interface (BONOBO_OBJECT (shell),
- BONOBO_OBJECT (priv->corba_storage_registry));
+ bonobo_object_add_interface (BONOBO_OBJECT (shell), BONOBO_OBJECT (corba_storage_registry));
+
+ /* Notice that `bonobo_object_add_interface()' aggregates the two object's
+ reference counts, so we need an extra ref here if we want to keep a separate
+ pointer to the storage interface. */
+ bonobo_object_ref (BONOBO_OBJECT (corba_storage_registry));
+ priv->corba_storage_registry = corba_storage_registry;
return TRUE;
}