aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--calendar/ChangeLog11
-rw-r--r--calendar/gui/e-meeting-model.c2
-rw-r--r--calendar/gui/e-meeting-time-sel.c8
3 files changed, 16 insertions, 5 deletions
diff --git a/calendar/ChangeLog b/calendar/ChangeLog
index abab644a57..f1311a75cf 100644
--- a/calendar/ChangeLog
+++ b/calendar/ChangeLog
@@ -1,3 +1,14 @@
+2003-04-10 JP Rosevear <jpr@ximian.com>
+
+ Fixes #41127
+
+ * gui/e-meeting-time-sel.c (e_meeting_time_selector_refresh_cb):
+ unref here, when the callback is done
+ (e_meeting_time_selector_refresh_free_busy): don't unref here
+
+ * gui/e-meeting-model.c (process_free_busy): if the type is
+ unexpected, make sure we cleanup properly
+
2003-04-10 Rodrigo Moya <rodrigo@ximian.com>
* gui/alarm-notify/alarm-queue.c (remove_queued_alarm): only remove
diff --git a/calendar/gui/e-meeting-model.c b/calendar/gui/e-meeting-model.c
index 4c0dfaf2fc..c460d37b04 100644
--- a/calendar/gui/e-meeting-model.c
+++ b/calendar/gui/e-meeting-model.c
@@ -1307,8 +1307,6 @@ process_free_busy (EMeetingModelQueueData *qdata, char *text)
icalcomponent_free (tz_top_level);
} else if (kind == ICAL_VFREEBUSY_COMPONENT) {
process_free_busy_comp (ia, main_comp, priv->zone, NULL);
- } else {
- return;
}
icalcomponent_free (main_comp);
diff --git a/calendar/gui/e-meeting-time-sel.c b/calendar/gui/e-meeting-time-sel.c
index f472ed8028..a2f06acb4c 100644
--- a/calendar/gui/e-meeting-time-sel.c
+++ b/calendar/gui/e-meeting-time-sel.c
@@ -1227,6 +1227,8 @@ e_meeting_time_selector_refresh_cb (gpointer data)
gtk_widget_queue_draw (mts->display_top);
if (mts->display_main != NULL)
gtk_widget_queue_draw (mts->display_main);
+
+ gtk_object_unref (GTK_OBJECT (mts));
}
static void
@@ -1243,7 +1245,9 @@ e_meeting_time_selector_refresh_free_busy (EMeetingTimeSelector *mts, int row, g
end.hour = 0;
end.minute = 0;
- /* Ref ourselves in case we are called back after destruction */
+ /* Ref ourselves in case we are called back after destruction,
+ * we can do this because we will get a call back even after
+ * an error */
gtk_object_ref (GTK_OBJECT (mts));
if (all)
@@ -1252,8 +1256,6 @@ e_meeting_time_selector_refresh_free_busy (EMeetingTimeSelector *mts, int row, g
else
e_meeting_model_refresh_busy_periods (mts->model, row, &start, &end,
e_meeting_time_selector_refresh_cb, mts);
-
- gtk_object_unref (GTK_OBJECT (mts));
}
EMeetingTimeSelectorAutopickOption