From 6d45ed28597a85c6b5dfa49aeeaf3911da76cf77 Mon Sep 17 00:00:00 2001 From: Hans Petter Jansson Date: Thu, 14 Aug 2003 07:18:18 +0000 Subject: Chain. 2003-08-12 Hans Petter Jansson * backend/ebook/e-destination.c (e_destination_dispose): Chain. * gui/component/e-address-widget.c (e_address_widget_destroy): Chain. Prevent double frees. Prevent double GSource removal. * gui/component/e-cardlist-model.c (e_cardlist_model_class_init): Store parent class. (e_cardlist_model_dispose): Chain. Prevent double frees and unrefs. * gui/contact-editor/e-contact-editor-address.c (e_contact_editor_address_dispose): Chain. * gui/contact-editor/e-contact-editor-fullname.c (e_contact_editor_fullname_dispose): Chain. * gui/contact-list-editor/e-contact-list-editor.c (e_contact_list_editor_dispose): Chain. * gui/contact-list-editor/e-contact-list-model.c (contact_list_model_destroy): Chain. Prevent double frees and unrefs. * gui/widgets/e-addressbook-reflow-adapter.c (addressbook_dispose): Chain. (addressbook_finalize): Chain. * gui/widgets/e-addressbook-table-adapter.c (addressbook_dispose): Chain. * gui/widgets/e-addressbook-treeview-adapter.c (addressbook_destroy): Chain. Prevent double free. * gui/widgets/gal-view-minicard.c (gal_view_minicard_dispose): Chain. Prevent double free and detach. * gui/widgts/gal-view-treeview.c (gal_view_treeview_dispose): Chain. Prevent double free and detach. * printins/e-contact-print-style-editor.c (e_contact_print_stule_editor_destroy): Chain. Prevent double unref. svn path=/trunk/; revision=22229 --- addressbook/gui/component/e-address-widget.c | 13 +++++++++++-- addressbook/gui/component/e-cardlist-model.c | 16 +++++++++++++--- 2 files changed, 24 insertions(+), 5 deletions(-) (limited to 'addressbook/gui/component') diff --git a/addressbook/gui/component/e-address-widget.c b/addressbook/gui/component/e-address-widget.c index e9698d5b1d..9ec1e6ebba 100644 --- a/addressbook/gui/component/e-address-widget.c +++ b/addressbook/gui/component/e-address-widget.c @@ -74,13 +74,22 @@ e_address_widget_destroy (GtkObject *obj) EAddressWidget *addr = E_ADDRESS_WIDGET (obj); g_free (addr->name); + addr->name = NULL; + g_free (addr->email); + addr->email = NULL; - if (addr->query_tag) + if (addr->query_tag) { e_book_simple_query_cancel (common_book, addr->query_tag); + addr->query_tag = 0; + } - if (addr->query_idle_tag) + if (addr->query_idle_tag) { g_source_remove (addr->query_idle_tag); + addr->query_idle_tag = 0; + } + + (* GTK_OBJECT_CLASS (parent_class)->destroy) (obj); } static gint diff --git a/addressbook/gui/component/e-cardlist-model.c b/addressbook/gui/component/e-cardlist-model.c index aca0bac22f..be1ff3ddd2 100644 --- a/addressbook/gui/component/e-cardlist-model.c +++ b/addressbook/gui/component/e-cardlist-model.c @@ -18,16 +18,24 @@ #define PARENT_TYPE e_table_model_get_type() +static GObjectClass *parent_class = NULL; + static void e_cardlist_model_dispose(GObject *object) { ECardlistModel *model = E_CARDLIST_MODEL(object); int i; - for ( i = 0; i < model->data_count; i++ ) { - g_object_unref(model->data[i]); + if (model->data != NULL) { + for ( i = 0; i < model->data_count; i++ ) { + g_object_unref(model->data[i]); + } + g_free(model->data); + model->data = NULL; } - g_free(model->data); + + if (G_OBJECT_CLASS (parent_class)->dispose) + (* G_OBJECT_CLASS (parent_class)->dispose) (object); } /* This function returns the number of columns in our ETableModel. */ @@ -157,6 +165,8 @@ static void e_cardlist_model_class_init (GObjectClass *object_class) { ETableModelClass *model_class = (ETableModelClass *) object_class; + + parent_class = g_type_class_peek_parent (object_class); object_class->dispose = e_cardlist_model_dispose; -- cgit v1.2.3