diff options
author | Ettore Perazzoli <ettore@src.gnome.org> | 2001-10-29 06:30:59 +0800 |
---|---|---|
committer | Ettore Perazzoli <ettore@src.gnome.org> | 2001-10-29 06:30:59 +0800 |
commit | a2f5e5b0f45429e42c7723b7d65dcec344b43e29 (patch) | |
tree | 1a0f9dc34308e84fc0e663342f8516df3cfde5e7 /shell/evolution-shell-component.c | |
parent | d16418158d22a039e2a9a9665a5b337aed5f510a (diff) | |
download | gsoc2013-evolution-a2f5e5b0f45429e42c7723b7d65dcec344b43e29.tar.gz gsoc2013-evolution-a2f5e5b0f45429e42c7723b7d65dcec344b43e29.tar.zst gsoc2013-evolution-a2f5e5b0f45429e42c7723b7d65dcec344b43e29.zip |
[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
Diffstat (limited to 'shell/evolution-shell-component.c')
-rw-r--r-- | shell/evolution-shell-component.c | 12 |
1 files changed, 8 insertions, 4 deletions
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); |