diff options
Diffstat (limited to 'calendar')
-rw-r--r-- | calendar/ChangeLog | 7 | ||||
-rw-r--r-- | calendar/gui/dialogs/event-editor.c | 28 | ||||
-rw-r--r-- | calendar/gui/dialogs/task-editor.c | 22 |
3 files changed, 48 insertions, 9 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog index fad3b52e9e..27c26ad21e 100644 --- a/calendar/ChangeLog +++ b/calendar/ChangeLog @@ -1,3 +1,10 @@ +2005-03-21 Chenthill Palanisamy <pchenthill@novell.com> + + Fixes #73031 + * gui/dialogs/event-editor.c: (event_editor_finalize): + * gui/dialogs/task-editor.c: (task_editor_finalize): Added + a check for the presence of the object before unreffing it. + 2005-03-21 JP Rosevear <jpr@novell.com> * gui/gnome-cal.c (default_client_cal_opened_cb): if its busy, try diff --git a/calendar/gui/dialogs/event-editor.c b/calendar/gui/dialogs/event-editor.c index 785fe5c357..5f46bb1222 100644 --- a/calendar/gui/dialogs/event-editor.c +++ b/calendar/gui/dialogs/event-editor.c @@ -332,12 +332,30 @@ event_editor_finalize (GObject *object) ee = EVENT_EDITOR (object); priv = ee->priv; - g_object_unref (priv->event_page); - g_object_unref (priv->recur_page); - g_object_unref (priv->meet_page); - g_object_unref (priv->sched_page); + if (priv->event_page) { + g_object_unref (priv->event_page); + priv->event_page = NULL; + } + + if (priv->recur_page) { + g_object_unref (priv->recur_page); + priv->recur_page = NULL; + } + + if (priv->meet_page) { + g_object_unref (priv->meet_page); + priv->meet_page = NULL; + } + + if (priv->sched_page) { + g_object_unref (priv->sched_page); + priv->sched_page = NULL; + } - g_object_unref (priv->model); + if (priv->model) { + g_object_unref (priv->model); + priv->model = NULL; + } g_free (priv); diff --git a/calendar/gui/dialogs/task-editor.c b/calendar/gui/dialogs/task-editor.c index 8cc4cb0113..b28814f18e 100644 --- a/calendar/gui/dialogs/task-editor.c +++ b/calendar/gui/dialogs/task-editor.c @@ -315,11 +315,25 @@ task_editor_finalize (GObject *object) te = TASK_EDITOR (object); priv = te->priv; - g_object_unref (priv->task_page); - g_object_unref (priv->task_details_page); - g_object_unref (priv->meet_page); + if (priv->task_page) { + g_object_unref (priv->task_page); + priv->task_page = NULL; + } + + if (priv->task_details_page) { + g_object_unref (priv->task_details_page); + priv->task_details_page = NULL; + } - g_object_unref (priv->model); + if (priv->meet_page) { + g_object_unref (priv->meet_page); + priv->meet_page = NULL; + } + + if (priv->model) { + g_object_unref (priv->model); + priv->model = NULL; + } g_free (priv); |