diff options
Diffstat (limited to 'calendar/gui/dialogs')
-rw-r--r-- | calendar/gui/dialogs/comp-editor.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/calendar/gui/dialogs/comp-editor.c b/calendar/gui/dialogs/comp-editor.c index 70ad1abe8f..7a462c9a1f 100644 --- a/calendar/gui/dialogs/comp-editor.c +++ b/calendar/gui/dialogs/comp-editor.c @@ -262,8 +262,12 @@ comp_editor_finalize (GObject *object) editor = COMP_EDITOR (object); priv = editor->priv; - g_signal_handlers_disconnect_matched (priv->client, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, editor); - + if (priv->client) { + g_signal_handlers_disconnect_matched (priv->client, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, editor); + g_object_unref (priv->client); + priv->client = NULL; + } + /* We want to destroy the pages after the widgets get destroyed, since they have lots of signal handlers connected to the widgets with the pages as the data. */ @@ -275,6 +279,8 @@ comp_editor_finalize (GObject *object) priv->comp = NULL; } + bonobo_object_unref (priv->uic); + g_free (priv); editor->priv = NULL; |