aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--e-util/ChangeLog7
-rw-r--r--e-util/e-component-listener.c3
2 files changed, 10 insertions, 0 deletions
diff --git a/e-util/ChangeLog b/e-util/ChangeLog
index 6fbc641f9a..1ea8456bbd 100644
--- a/e-util/ChangeLog
+++ b/e-util/ChangeLog
@@ -1,3 +1,10 @@
+2002-09-23 Rodrigo Moya <rodrigo@ximian.com>
+
+ * e-component-listener.c (ping_component_callback): gtk_object_ref the
+ component listener before emitting the "component_died" signal, since
+ in most cases, the component listener will be destroyed in the
+ callbacks for that signal.
+
2002-09-22 Dan Winship <danw@ximian.com>
* e-config-listener.c: Fix some non-ANSI switch statements
diff --git a/e-util/e-component-listener.c b/e-util/e-component-listener.c
index d58f44e577..9e5ff77ef1 100644
--- a/e-util/e-component-listener.c
+++ b/e-util/e-component-listener.c
@@ -143,11 +143,14 @@ ping_component_callback (gpointer user_data)
out:
/* the component has died, so we notify and close the timeout */
+ gtk_object_ref (GTK_OBJECT (cl));
gtk_signal_emit (GTK_OBJECT (cl), comp_listener_signals[COMPONENT_DIED]);
cl->priv->component = CORBA_OBJECT_NIL;
cl->priv->ping_timeout_id = -1;
+ gtk_object_unref (GTK_OBJECT (cl));
+
return FALSE;
}