From a2f5e5b0f45429e42c7723b7d65dcec344b43e29 Mon Sep 17 00:00:00 2001 From: Ettore Perazzoli Date: Sun, 28 Oct 2001 22:30:59 +0000 Subject: [The following should fix #13802, crash on exit.] * evolution-shell-component.c (impl_unsetOwner): Set the ping timeout ID to -1 when removing the source. (impl_destroy): Likewise. (impl_unsetOwner): Remove the timeout before unreffing, not after unreffing. svn path=/trunk/; revision=14304 --- shell/evolution-shell-component.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'shell/evolution-shell-component.c') diff --git a/shell/evolution-shell-component.c b/shell/evolution-shell-component.c index dc27a951c9..2063be04f7 100644 --- a/shell/evolution-shell-component.c +++ b/shell/evolution-shell-component.c @@ -407,12 +407,14 @@ impl_unsetOwner (PortableServer_Servant servant, return; } + if (priv->ping_timeout_id != -1) { + g_source_remove (priv->ping_timeout_id); + priv->ping_timeout_id = -1; + } + bonobo_object_unref (BONOBO_OBJECT (priv->owner_client)); priv->owner_client = NULL; - if (priv->ping_timeout_id != -1) - g_source_remove (priv->ping_timeout_id); - gtk_signal_emit (GTK_OBJECT (shell_component), signals[OWNER_UNSET]); } @@ -653,8 +655,10 @@ destroy (GtkObject *object) priv = shell_component->priv; - if (priv->ping_timeout_id != -1) + if (priv->ping_timeout_id != -1) { g_source_remove (priv->ping_timeout_id); + priv->ping_timeout_id = -1; + } CORBA_exception_init (&ev); -- cgit v1.2.3