diff options
author | Ettore Perazzoli <ettore@src.gnome.org> | 2000-06-30 18:04:45 +0800 |
---|---|---|
committer | Ettore Perazzoli <ettore@src.gnome.org> | 2000-06-30 18:04:45 +0800 |
commit | cc0facedacf4d31e47d265cac871d334b6b566d1 (patch) | |
tree | 3a8995a50dd86b3e661911ec7afef78b90d58927 | |
parent | 43aa02ecd418a9a898d4287aa5a29f050486d605 (diff) | |
download | gsoc2013-evolution-cc0facedacf4d31e47d265cac871d334b6b566d1.tar.gz gsoc2013-evolution-cc0facedacf4d31e47d265cac871d334b6b566d1.tar.zst gsoc2013-evolution-cc0facedacf4d31e47d265cac871d334b6b566d1.zip |
Added missing CORBA_Object_duplicate() when storing the shell
object pointer in ::set_owner.
svn path=/trunk/; revision=3826
-rw-r--r-- | shell/ChangeLog | 5 | ||||
-rw-r--r-- | shell/evolution-shell-component.c | 10 |
2 files changed, 11 insertions, 4 deletions
diff --git a/shell/ChangeLog b/shell/ChangeLog index a5acff39cf..d7f70b0d15 100644 --- a/shell/ChangeLog +++ b/shell/ChangeLog @@ -1,5 +1,10 @@ 2000-06-30 Ettore Perazzoli <ettore@helixcode.com> + * evolution-shell-component.c (impl_ShellComponent_set_owner): + Duplicate the object before storing it, you doofus. + +2000-06-30 Ettore Perazzoli <ettore@helixcode.com> + * evolution-shell-component.c (impl_ShellComponent_unset_owner): NULL the owner_client. diff --git a/shell/evolution-shell-component.c b/shell/evolution-shell-component.c index d110a424d7..4069086c85 100644 --- a/shell/evolution-shell-component.c +++ b/shell/evolution-shell-component.c @@ -127,6 +127,7 @@ impl_ShellComponent_set_owner (PortableServer_Servant servant, BonoboObject *bonobo_object; EvolutionShellComponent *shell_component; EvolutionShellComponentPrivate *priv; + Evolution_Shell shell_duplicate; bonobo_object = bonobo_object_from_servant (servant); shell_component = EVOLUTION_SHELL_COMPONENT (bonobo_object); @@ -138,11 +139,12 @@ impl_ShellComponent_set_owner (PortableServer_Servant servant, return; } - priv->owner_client = evolution_shell_client_new (shell); + shell_duplicate = CORBA_Object_duplicate (shell, ev); - g_print ("%s -- %p\n", __FUNCTION__, shell); - - gtk_signal_emit (GTK_OBJECT (shell_component), signals[OWNER_SET], priv->owner_client); + if (ev->_major == CORBA_NO_EXCEPTION) { + priv->owner_client = evolution_shell_client_new (shell_duplicate); + gtk_signal_emit (GTK_OBJECT (shell_component), signals[OWNER_SET], priv->owner_client); + } } static void |