From 28bc0361b9db902a9bcca18cfc5c1b9cc37a7229 Mon Sep 17 00:00:00 2001 From: Chris Toshok Date: Sat, 9 Nov 2002 04:10:06 +0000 Subject: guard against multiple invocations. (remove_book_view): same. 2002-11-08 Chris Toshok * gui/widgets/e-addressbook-model.c (free_data): guard against multiple invocations. (remove_book_view): same. (addressbook_dispose): same. * gui/widgets/e-addressbook-view.c (e_addressbook_view_dispose): same. * gui/widgets/e-minicard-view-widget.c (e_minicard_view_widget_dispose): same. * gui/widgets/e-minicard-view.c (e_minicard_view_dispose): same. * gui/widgets/e-minicard-widget.c (e_minicard_widget_dispose): same. svn path=/trunk/; revision=18685 --- addressbook/gui/widgets/e-addressbook-model.c | 29 +++++++++++++++--------- addressbook/gui/widgets/e-addressbook-view.c | 6 +++-- addressbook/gui/widgets/e-minicard-view-widget.c | 17 ++++++++++---- addressbook/gui/widgets/e-minicard-view.c | 4 +++- addressbook/gui/widgets/e-minicard-widget.c | 4 +++- 5 files changed, 41 insertions(+), 19 deletions(-) (limited to 'addressbook/gui') diff --git a/addressbook/gui/widgets/e-addressbook-model.c b/addressbook/gui/widgets/e-addressbook-model.c index e40ca3ce9a..1d5b228bac 100644 --- a/addressbook/gui/widgets/e-addressbook-model.c +++ b/addressbook/gui/widgets/e-addressbook-model.c @@ -57,16 +57,18 @@ static guint e_addressbook_model_signals [LAST_SIGNAL] = {0, }; static void free_data (EAddressbookModel *model) { - int i; + if (model->data) { + int i; - for ( i = 0; i < model->data_count; i++ ) { - g_object_unref (model->data[i]); - } + for ( i = 0; i < model->data_count; i++ ) { + g_object_unref (model->data[i]); + } - g_free(model->data); - model->data = NULL; - model->data_count = 0; - model->allocated_count = 0; + g_free(model->data); + model->data = NULL; + model->data_count = 0; + model->allocated_count = 0; + } } static void @@ -99,9 +101,8 @@ remove_book_view(EAddressbookModel *model) if (model->book_view) { e_book_view_stop (model->book_view); g_object_unref (model->book_view); + model->book_view = NULL; } - - model->book_view = NULL; } static void @@ -132,7 +133,13 @@ addressbook_dispose(GObject *object) model->book = NULL; } - g_free (model->query); + if (model->query) { + g_free (model->query); + model->query = NULL; + } + + if (G_OBJECT_CLASS(parent_class)->dispose) + G_OBJECT_CLASS(parent_class)->dispose(object); } static void diff --git a/addressbook/gui/widgets/e-addressbook-view.c b/addressbook/gui/widgets/e-addressbook-view.c index 0651ddd152..1c74a1b636 100644 --- a/addressbook/gui/widgets/e-addressbook-view.c +++ b/addressbook/gui/widgets/e-addressbook-view.c @@ -323,8 +323,10 @@ e_addressbook_view_dispose (GObject *object) eav->book = NULL; } - g_free(eav->query); - eav->query = NULL; + if (eav->query) { + g_free(eav->query); + eav->query = NULL; + } eav->uic = NULL; diff --git a/addressbook/gui/widgets/e-minicard-view-widget.c b/addressbook/gui/widgets/e-minicard-view-widget.c index 3d484560bd..03166005e2 100644 --- a/addressbook/gui/widgets/e-minicard-view-widget.c +++ b/addressbook/gui/widgets/e-minicard-view-widget.c @@ -273,13 +273,22 @@ e_minicard_view_widget_dispose (GObject *object) { EMinicardViewWidget *view = E_MINICARD_VIEW_WIDGET(object); - if (view->book) + if (view->book) { g_object_unref (view->book); - g_free(view->query); + view->book = NULL; + } + if (view->query) { + g_free(view->query); + view->query = NULL; + } - g_object_unref (view->adapter); + if (view->adapter) { + g_object_unref (view->adapter); + view->adapter = NULL; + } - G_OBJECT_CLASS(parent_class)->dispose (object); + if (G_OBJECT_CLASS(parent_class)->dispose) + G_OBJECT_CLASS(parent_class)->dispose (object); } static void diff --git a/addressbook/gui/widgets/e-minicard-view.c b/addressbook/gui/widgets/e-minicard-view.c index 661bf2753d..e4c8db0bd1 100644 --- a/addressbook/gui/widgets/e-minicard-view.c +++ b/addressbook/gui/widgets/e-minicard-view.c @@ -271,6 +271,7 @@ e_minicard_view_dispose (GObject *object) if (view->canvas_drag_data_get_id) { g_signal_handler_disconnect (GNOME_CANVAS_ITEM (view)->canvas, view->canvas_drag_data_get_id); + view->canvas_drag_data_get_id = 0; } if (view->adapter) { @@ -289,7 +290,8 @@ e_minicard_view_dispose (GObject *object) view->writable_status_id = 0; view->adapter = NULL; - G_OBJECT_CLASS(parent_class)->dispose (object); + if (G_OBJECT_CLASS(parent_class)->dispose) + G_OBJECT_CLASS(parent_class)->dispose (object); } static guint diff --git a/addressbook/gui/widgets/e-minicard-widget.c b/addressbook/gui/widgets/e-minicard-widget.c index 75ccfccc98..5c8483ac88 100644 --- a/addressbook/gui/widgets/e-minicard-widget.c +++ b/addressbook/gui/widgets/e-minicard-widget.c @@ -181,8 +181,10 @@ e_minicard_widget_dispose (GObject *object) { EMinicardWidget *emw = E_MINICARD_WIDGET(object); - if (emw->card) + if (emw->card) { g_object_unref (emw->card); + emw->card = NULL; + } if (G_OBJECT_CLASS(parent_class)->dispose) G_OBJECT_CLASS(parent_class)->dispose(object); -- cgit v1.2.3