Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:jberkman
evolution-exchange-2.6
bnc-ee-215633-delete-crash.diff
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File bnc-ee-215633-delete-crash.diff of Package evolution-exchange-2.6
Index: calendar/e-cal-backend-exchange-calendar.c =================================================================== RCS file: /cvs/gnome/evolution-exchange/calendar/e-cal-backend-exchange-calendar.c,v retrieving revision 1.61 diff -u -p -r1.61 e-cal-backend-exchange-calendar.c --- calendar/e-cal-backend-exchange-calendar.c 31 Jul 2006 06:37:33 -0000 1.61 +++ calendar/e-cal-backend-exchange-calendar.c 7 Nov 2006 15:08:50 -0000 @@ -1065,6 +1065,8 @@ modify_object_with_href (ECalBackendSync GList *l = NULL; struct icaltimetype inst_rid; gboolean remove = FALSE; + ECalBackendSyncStatus status = GNOME_Evolution_Calendar_Success; + GList *to_remove = NULL; cbexc = E_CAL_BACKEND_EXCHANGE_CALENDAR (backend); cbex = E_CAL_BACKEND_EXCHANGE (backend); @@ -1315,20 +1317,28 @@ modify_object_with_href (ECalBackendSync cached_ecomp = e_cal_component_new (); e_cal_component_set_icalcomponent (cached_ecomp, - icalcomponent_new_clone (l->data)); - if (remove) { - icalcomponent_free (l->data); - l = g_list_remove_link (ecomp->instances, l); - if (!l) - break; - } - + icalcomponent_new_clone (icomp)); + if (remove) + to_remove = l; continue; } else { - icalcomponent_add_component (cbdata->vcal_comp, icalcomponent_new_clone (icomp)); + ECalComponent *comp = e_cal_component_new (); + e_cal_component_set_icalcomponent (comp, icalcomponent_new_clone (icomp)); + + update_x_properties (E_CAL_BACKEND_EXCHANGE (cbexc), comp); + + icalcomponent_add_component (cbdata->vcal_comp, + icalcomponent_new_clone (e_cal_component_get_icalcomponent (comp))); + + g_object_unref (comp); } } + if (to_remove) { + icalcomponent_free (to_remove->data); + ecomp->instances = g_list_remove_link (ecomp->instances, to_remove); + } + e_cal_backend_exchange_cache_unlock (cbex); if (!cached_ecomp && remove) @@ -1410,7 +1420,8 @@ modify_object_with_href (ECalBackendSync e_cal_backend_exchange_modify_object (E_CAL_BACKEND_EXCHANGE (cbexc), e_cal_component_get_icalcomponent (real_ecomp), mod, remove); e_cal_backend_exchange_cache_unlock (cbex); - } + } else + status = GNOME_Evolution_Calendar_OtherError; if (!remove) *new_object = e_cal_component_get_as_string (real_ecomp); @@ -1426,7 +1437,7 @@ modify_object_with_href (ECalBackendSync g_free (cbdata); e2k_properties_free (props); - return GNOME_Evolution_Calendar_Success; + return status; } static ECalBackendSyncStatus
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor