diff options
author | Jon Trowbridge <trow@ximian.com> | 2001-12-07 08:17:04 +0800 |
---|---|---|
committer | Jon Trowbridge <trow@src.gnome.org> | 2001-12-07 08:17:04 +0800 |
commit | a86bcdd036ea915f23e3532748ca726de039d584 (patch) | |
tree | 4afcde83d3a792e2656ac7f7b954089a84c6656c /calendar/gui | |
parent | 92b2a3c90af03a839fab06efb96429c9d4976ddd (diff) | |
download | gsoc2013-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.c | 1 | ||||
-rw-r--r-- | calendar/gui/e-meeting-model.c | 7 | ||||
-rw-r--r-- | calendar/gui/e-meeting-time-sel.c | 5 |
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); |