diff options
author | Dan Winship <danw@src.gnome.org> | 2001-07-25 02:13:14 +0800 |
---|---|---|
committer | Dan Winship <danw@src.gnome.org> | 2001-07-25 02:13:14 +0800 |
commit | 0a9ba272a22ed1a8d4521321a7f8fc95042e6253 (patch) | |
tree | a677844bce80691b3199d06733110388584b651b | |
parent | 2a50df3b9536ea58ab270def25b025aff12828bc (diff) | |
download | gsoc2013-evolution-0a9ba272a22ed1a8d4521321a7f8fc95042e6253.tar.gz gsoc2013-evolution-0a9ba272a22ed1a8d4521321a7f8fc95042e6253.tar.zst gsoc2013-evolution-0a9ba272a22ed1a8d4521321a7f8fc95042e6253.zip |
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
-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; } |