diff options
author | Ettore Perazzoli <ettore@src.gnome.org> | 2000-07-08 01:54:25 +0800 |
---|---|---|
committer | Ettore Perazzoli <ettore@src.gnome.org> | 2000-07-08 01:54:25 +0800 |
commit | c2afd80bd66b56db0e6a76f4289a76434a53d445 (patch) | |
tree | 4e8b60d446086f1bfba44b40844f399d54b586a9 /shell/e-shell.c | |
parent | 243dbca93af49733ab7680e32affb276467899b9 (diff) | |
download | gsoc2013-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.c | 14 |
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; } |