From 0e33447271953845cc301bd51562c9c19f1bb9af Mon Sep 17 00:00:00 2001 From: Chris Toshok Date: Sun, 20 Oct 2002 20:58:49 +0000 Subject: [ probable fix for #25477, and memory leak fix ] if the dialog isn't in 2002-10-19 Chris Toshok [ probable fix for #25477, and memory leak fix ] * gui/contact-editor/e-contact-editor.c (supported_fields_cb): if the dialog isn't in the list of all dialogs it's been destroyed so just return here. * backend/ebook/e-book.c (e_book_do_response_get_supported_fields): plug leak of resp->fields. svn path=/trunk/; revision=18396 --- addressbook/ChangeLog | 11 +++++++++++ addressbook/backend/ebook/e-book.c | 2 ++ addressbook/gui/contact-editor/e-contact-editor.c | 5 +++++ 3 files changed, 18 insertions(+) (limited to 'addressbook') diff --git a/addressbook/ChangeLog b/addressbook/ChangeLog index c67db48937..a5945c9e3c 100644 --- a/addressbook/ChangeLog +++ b/addressbook/ChangeLog @@ -1,3 +1,14 @@ +2002-10-19 Chris Toshok + + [ probable fix for #25477, and memory leak fix ] + * gui/contact-editor/e-contact-editor.c (supported_fields_cb): if + the dialog isn't in the list of all dialogs it's been destroyed so + just return here. + + * backend/ebook/e-book.c + (e_book_do_response_get_supported_fields): plug leak of + resp->fields. + 2002-10-15 Dan Winship * backend/ebook/e-card.c (e_card_email_match_string): Return right diff --git a/addressbook/backend/ebook/e-book.c b/addressbook/backend/ebook/e-book.c index cad203ad44..d211496261 100644 --- a/addressbook/backend/ebook/e-book.c +++ b/addressbook/backend/ebook/e-book.c @@ -483,6 +483,8 @@ e_book_do_response_get_supported_fields (EBook *book, ((EBookFieldsCallback) op->cb) (book, E_BOOK_STATUS_CANCELLED, NULL, op->closure); } + gtk_object_unref(GTK_OBJECT(resp->fields)); + e_book_op_free (op); } diff --git a/addressbook/gui/contact-editor/e-contact-editor.c b/addressbook/gui/contact-editor/e-contact-editor.c index f22aaa5487..fa30ec871e 100644 --- a/addressbook/gui/contact-editor/e-contact-editor.c +++ b/addressbook/gui/contact-editor/e-contact-editor.c @@ -1489,6 +1489,11 @@ static void supported_fields_cb (EBook *book, EBookStatus status, EList *fields, EContactEditor *ce) { + if (!g_slist_find (all_contact_editors, ce)) { + g_warning ("supported_fields_cb called for book that's still around, but contact editor that's been destroyed."); + return; + } + gtk_object_set (GTK_OBJECT (ce), "writable_fields", fields, NULL); -- cgit v1.2.3