aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/gui
diff options
context:
space:
mode:
authorJon Trowbridge <trow@ximian.com>2001-12-07 08:17:04 +0800
committerJon Trowbridge <trow@src.gnome.org>2001-12-07 08:17:04 +0800
commita86bcdd036ea915f23e3532748ca726de039d584 (patch)
tree4afcde83d3a792e2656ac7f7b954089a84c6656c /calendar/gui
parent92b2a3c90af03a839fab06efb96429c9d4976ddd (diff)
downloadgsoc2013-evolution-a86bcdd036ea915f23e3532748ca726de039d584.tar
gsoc2013-evolution-a86bcdd036ea915f23e3532748ca726de039d584.tar.gz
gsoc2013-evolution-a86bcdd036ea915f23e3532748ca726de039d584.tar.bz2
gsoc2013-evolution-a86bcdd036ea915f23e3532748ca726de039d584.tar.lz
gsoc2013-evolution-a86bcdd036ea915f23e3532748ca726de039d584.tar.xz
gsoc2013-evolution-a86bcdd036ea915f23e3532748ca726de039d584.tar.zst
gsoc2013-evolution-a86bcdd036ea915f23e3532748ca726de039d584.zip
Explicitly destroy the EMeetingModel. This is a hack to work around
2001-12-06 Jon Trowbridge <trow@ximian.com> * gui/dialogs/event-editor.c (event_editor_destroy): Explicitly destroy the EMeetingModel. This is a hack to work around problems with the reference counting; we are still leaking the EMeetingModels. * gui/e-meeting-time-sel.c (e_meeting_time_selector_construct): Ref our EMeetingModel. (e_meeting_time_selector_destroy): Unref the model. * gui/e-meeting-model.c (destroy): Properly destroy corba_select_names with a call to bonobo_object_release_unref. (Fixes 14002) svn path=/trunk/; revision=14919
Diffstat (limited to 'calendar/gui')
-rw-r--r--calendar/gui/dialogs/event-editor.c1
-rw-r--r--calendar/gui/e-meeting-model.c7
-rw-r--r--calendar/gui/e-meeting-time-sel.c5
3 files changed, 13 insertions, 0 deletions
diff --git a/calendar/gui/dialogs/event-editor.c b/calendar/gui/dialogs/event-editor.c
index 7fa48546cc..1c70b36858 100644
--- a/calendar/gui/dialogs/event-editor.c
+++ b/calendar/gui/dialogs/event-editor.c
@@ -328,6 +328,7 @@ event_editor_destroy (GtkObject *object)
gtk_object_unref (GTK_OBJECT (priv->meet_page));
gtk_object_unref (GTK_OBJECT (priv->sched_page));
+ gtk_object_destroy (GTK_OBJECT (priv->model));
gtk_object_unref (GTK_OBJECT (priv->model));
if (GTK_OBJECT_CLASS (parent_class)->destroy)
diff --git a/calendar/gui/e-meeting-model.c b/calendar/gui/e-meeting-model.c
index d80c95fb41..f9a692f3b7 100644
--- a/calendar/gui/e-meeting-model.c
+++ b/calendar/gui/e-meeting-model.c
@@ -688,6 +688,13 @@ destroy (GtkObject *obj)
if (priv->ebook != NULL)
gtk_object_unref (GTK_OBJECT (priv->ebook));
+
+ if (priv->corba_select_names != CORBA_OBJECT_NIL) {
+ CORBA_Environment ev;
+ CORBA_exception_init (&ev);
+ bonobo_object_release_unref (priv->corba_select_names, &ev);
+ CORBA_exception_free (&ev);
+ }
g_free (priv);
}
diff --git a/calendar/gui/e-meeting-time-sel.c b/calendar/gui/e-meeting-time-sel.c
index 0decccb9ef..4456ccafed 100644
--- a/calendar/gui/e-meeting-time-sel.c
+++ b/calendar/gui/e-meeting-time-sel.c
@@ -347,6 +347,8 @@ e_meeting_time_selector_construct (EMeetingTimeSelector * mts, EMeetingModel *em
/* build the etable */
filename = g_strdup_printf ("%s/config/et-header-meeting-time-sel", evolution_dir);
mts->model = emm;
+ if (mts->model)
+ gtk_object_ref (GTK_OBJECT (mts->model));
gtk_signal_connect (GTK_OBJECT (mts->model), "model_rows_inserted",
GTK_SIGNAL_FUNC (row_count_changed_cb), mts);
@@ -855,6 +857,9 @@ e_meeting_time_selector_destroy (GtkObject *object)
gdk_color_context_free (mts->color_context);
gdk_bitmap_unref (mts->stipple);
+
+ if (mts->model)
+ gtk_object_unref (GTK_OBJECT (mts->model));
if (GTK_OBJECT_CLASS (parent_class)->destroy)
(*GTK_OBJECT_CLASS (parent_class)->destroy)(object);