aboutsummaryrefslogtreecommitdiffstats
path: root/calendar/cal-client
diff options
context:
space:
mode:
authorHarry Lu <harry.lu@sun.com>2003-10-24 00:10:09 +0800
committerRodrigo Moya <rodrigo@src.gnome.org>2003-10-24 00:10:09 +0800
commiteca844b013c8de01e2b6dcdecffdf50e1ecab7b6 (patch)
tree631264e05bdd79eb9e43507eadfac45cd5f95620 /calendar/cal-client
parent39e56385b1abe6e053dd04004cc4fecbc0cf2d86 (diff)
downloadgsoc2013-evolution-eca844b013c8de01e2b6dcdecffdf50e1ecab7b6.tar.gz
gsoc2013-evolution-eca844b013c8de01e2b6dcdecffdf50e1ecab7b6.tar.zst
gsoc2013-evolution-eca844b013c8de01e2b6dcdecffdf50e1ecab7b6.zip
remove and free op before return.
2003-10-23 Harry Lu <harry.lu@sun.com> * cal-client/cal-client.c: (cal_client_get_timezone): remove and free op before return. * gui/e-cal-view.c (e_cal_view_add_event): modified from selection_received_add_event() so that it call be called out of e-cal-view.c. (selection_received): modified to call e_cal_view_add_event(). * gui/e-cal-view.h: add declaration for e_cal_view_add_event(). * gui/e-day-view.c (e_day_view_on_drag_data_get): Provide a icalcomponent for both TARGET_CALENDAR_EVENT and TARGET_VCALENDAR. (e_day_view_on_top_canvas_drag_data_received): If dragging between different windows, make it works like a copy and paste. (e_day_view_on_main_canvas_drag_data_received): ditto. svn path=/trunk/; revision=23041
Diffstat (limited to 'calendar/cal-client')
-rw-r--r--calendar/cal-client/cal-client.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/calendar/cal-client/cal-client.c b/calendar/cal-client/cal-client.c
index 8aea224485..91242a20c5 100644
--- a/calendar/cal-client/cal-client.c
+++ b/calendar/cal-client/cal-client.c
@@ -3482,13 +3482,22 @@ cal_client_get_timezone (CalClient *client, const char *tzid, icaltimezone **zon
g_free (our_op->string);
/* FIXME Invalid object status? */
- if (!icalcomp)
+ if (!icalcomp) {
+ e_calendar_remove_op (client, our_op);
+ e_mutex_unlock (our_op->mutex);
+ e_calendar_free_op (our_op);
+
E_CALENDAR_CHECK_STATUS (E_CALENDAR_STATUS_OBJECT_NOT_FOUND, error);
+ }
*zone = icaltimezone_new ();
if (!icaltimezone_set_component (*zone, icalcomp)) {
icaltimezone_free (*zone, 1);
+ e_calendar_remove_op (client, our_op);
+ e_mutex_unlock (our_op->mutex);
+ e_calendar_free_op (our_op);
+
E_CALENDAR_CHECK_STATUS (E_CALENDAR_STATUS_OBJECT_NOT_FOUND, error);
}