aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui/e-tasks.c
diff options
context:
space:
mode:
authorJP Rosevear <jpr@ximian.com>2003-05-15 02:45:55 +0800
committerJP Rosevear <jpr@src.gnome.org>2003-05-15 02:45:55 +0800
commit352d3c7d3b080850f4fc81b502a0f0b0d3c2369d (patch)
treebcf141b2a6e60c5382ab04c1fd439c9319556ad0 /calendar/gui/e-tasks.c
parent0203f5de7608f34c6510948b36f522c4c3a87fef (diff)
downloadgsoc2013-evolution-352d3c7d3b080850f4fc81b502a0f0b0d3c2369d.tar
gsoc2013-evolution-352d3c7d3b080850f4fc81b502a0f0b0d3c2369d.tar.gz
gsoc2013-evolution-352d3c7d3b080850f4fc81b502a0f0b0d3c2369d.tar.bz2
gsoc2013-evolution-352d3c7d3b080850f4fc81b502a0f0b0d3c2369d.tar.lz
gsoc2013-evolution-352d3c7d3b080850f4fc81b502a0f0b0d3c2369d.tar.xz
gsoc2013-evolution-352d3c7d3b080850f4fc81b502a0f0b0d3c2369d.tar.zst
gsoc2013-evolution-352d3c7d3b080850f4fc81b502a0f0b0d3c2369d.zip
guard against multiple destroys
2003-05-14 JP Rosevear <jpr@ximian.com> * gui/e-tasks.c (e_tasks_destroy): guard against multiple destroys * cal-client/cal-client.c (cal_client_finalize): unref the bonobo listener * gui/gnome-cal.c (gnome_calendar_destroy): guard against multiple destroy calls * gui/e-week-view.c (e_week_view_init): connect after destroy (invisible_destroyed): don't unref, its already destroyed * gui/e-day-view.c (e_day_view_init): connect after destroy (invisible_destroyed): don't unref, its already destroyed * gui/e-calendar-table.c (e_calendar_table_class_init): make sure we set the parent class (e_calendar_table_init): connect after the destroy handler runs (e_calendar_table_destroy): guard against multiple destroys (invisible_destroyed): don't unref the invisible, its already being destroyed * gui/calendar-offline-handler.c (backend_cal_set_mode): unref the client, we are done with it now (backend_cal_opened_online): ditto (impl_dispose): unref our main client * gui/calendar-commands.c (control_util_set_folder_bar_label): release/unref the shell view once we are done with it (control_util_show_settings): ditto svn path=/trunk/; revision=21180
Diffstat (limited to 'calendar/gui/e-tasks.c')
-rw-r--r--calendar/gui/e-tasks.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/calendar/gui/e-tasks.c b/calendar/gui/e-tasks.c
index 38035400da..df434a28aa 100644
--- a/calendar/gui/e-tasks.c
+++ b/calendar/gui/e-tasks.c
@@ -306,16 +306,18 @@ e_tasks_destroy (GtkObject *object)
tasks = E_TASKS (object);
priv = tasks->priv;
- if (priv->client) {
- g_object_unref (priv->client);
- priv->client = NULL;
+ if (priv) {
+ if (priv->client) {
+ g_object_unref (priv->client);
+ priv->client = NULL;
+ }
+
+ g_free (priv);
+ tasks->priv = NULL;
+
+ all_tasks = g_list_remove (all_tasks, tasks);
}
- g_free (priv);
- tasks->priv = NULL;
-
- all_tasks = g_list_remove (all_tasks, tasks);
-
if (GTK_OBJECT_CLASS (parent_class)->destroy)
(* GTK_OBJECT_CLASS (parent_class)->destroy) (object);
}