From 0a9ba272a22ed1a8d4521321a7f8fc95042e6253 Mon Sep 17 00:00:00 2001 From: Dan Winship Date: Tue, 24 Jul 2001 18:13:14 +0000 Subject: Don't stop the idle_queue and unref from here, since this might be called * backend/ebook/e-book-listener.c (e_book_listener_stop): Don't stop the idle_queue and unref from here, since this might be called from inside e_book_listener_check_queue, and we don't want to return to that function with the listener having been destroyed. (e_book_listener_check_queue): Don't exit early if the queue is stopped. Proceed through the check if the queue is NULL (which is must be if the queue is stopped), and then reach the existing code to remove the idle handler. Combined with the above, this fixes ximian #4485 (again). This is not a plot to boost my showstopper-bugfixing count by fixing the same bug over and over again. svn path=/trunk/; revision=11346 --- addressbook/ChangeLog | 15 +++++++++++++++ addressbook/backend/ebook/e-book-listener.c | 11 ----------- 2 files changed, 15 insertions(+), 11 deletions(-) (limited to 'addressbook') diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index 9d3bed3211..04ae3a90f1 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,18 @@ +2001-07-24 Dan Winship + + * backend/ebook/e-book-listener.c (e_book_listener_stop): Don't + stop the idle_queue and unref from here, since this might be + called from inside e_book_listener_check_queue, and we don't want + to return to that function with the listener having been + destroyed. + (e_book_listener_check_queue): Don't exit early if the queue is + stopped. Proceed through the check if the queue is NULL (which is + must be if the queue is stopped), and then reach the existing code + to remove the idle handler. Combined with the above, this fixes + ximian #4485 (again). This is not a plot to boost my + showstopper-bugfixing count by fixing the same bug over and over + again. + 2001-07-23 Dan Winship Re-fix for my 07-18 not-quite-fix. diff --git a/addressbook/backend/ebook/e-book-listener.c b/addressbook/backend/ebook/e-book-listener.c index 87ea5f874f..285c6646b2 100644 --- a/addressbook/backend/ebook/e-book-listener.c +++ b/addressbook/backend/ebook/e-book-listener.c @@ -35,11 +35,6 @@ struct _EBookListenerPrivate { static gboolean e_book_listener_check_queue (EBookListener *listener) { - if (listener->priv->stopped) { - listener->priv->idle_id = 0; - return FALSE; - } - if (listener->priv->response_queue != NULL) { gtk_signal_emit (GTK_OBJECT (listener), e_book_listener_signals [RESPONSES_QUEUED]); @@ -678,12 +673,6 @@ e_book_listener_stop (EBookListener *listener) g_list_free (listener->priv->response_queue); listener->priv->response_queue = NULL; - if (listener->priv->idle_id) { - g_source_remove (listener->priv->idle_id); - listener->priv->idle_id = 0; - bonobo_object_unref (BONOBO_OBJECT (listener)); - } - listener->priv->stopped = TRUE; } -- cgit v1.2.3