diff options
Diffstat (limited to 'addressbook/gui/component')
-rw-r--r-- | addressbook/gui/component/e-address-widget.c | 13 | ||||
-rw-r--r-- | addressbook/gui/component/e-cardlist-model.c | 16 |
2 files changed, 24 insertions, 5 deletions
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; |