diff options
-rw-r--r-- | addressbook/ChangeLog | 15 | ||||
-rw-r--r-- | addressbook/backend/ebook/e-book-listener.c | 11 |
2 files changed, 15 insertions, 11 deletions
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 <danw@ximian.com> + + * 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 <danw@ximian.com> 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; } |