diff options
author | Patrick Ohly <patrick.ohly@intel.com> | 2013-04-11 00:09:40 -0700 |
---|---|---|
committer | Patrick Ohly <patrick.ohly@intel.com> | 2013-05-06 16:28:12 +0200 |
commit | 75e3fb86f93140764073e80d7265c5fc397ad5e5 (patch) | |
tree | 1d185b4d34e8c613bb85a79b87bf7a16df46df43 | |
parent | 6156ae620cc70ecab6ec6ce152443f5a5ef71a84 (diff) |
EDS: avoid e_cal_client_remove_object_sync with empty UID
The call cannot succeed without an empty UID, so there's no point
even trying it. Worse, EDS 3.8 aborts the process when given
an empty UID:
[ERROR 00:00:00] GLib: g_variant_builder_end: assertion
`!GVSB(builder)->uniform_item_types || GVSB(builder)->prev_item_type != NULL
|| g_variant_type_is_definite (GVSB(builder)->type)' failed
[ERROR 00:00:00] GLib: g_variant_get_type: assertion `value != NULL' failed
[ERROR 00:00:00] GLib: g_variant_type_is_subtype_of: assertion `g_variant_type_check (type)' failed
[ERROR 00:00:00] GLib: g_variant_get_type_string: assertion `value != NULL' failed
[ERROR 00:00:00] GLib: g_variant_new: expected GVariant of type `a(ss)' but received value has type `(null)'
See https://bugzilla.gnome.org/show_bug.cgi?id=697705
-rw-r--r-- | src/backends/evolution/EvolutionCalendarSource.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backends/evolution/EvolutionCalendarSource.cpp b/src/backends/evolution/EvolutionCalendarSource.cpp index b10e8c1c..dc52601c 100644 --- a/src/backends/evolution/EvolutionCalendarSource.cpp +++ b/src/backends/evolution/EvolutionCalendarSource.cpp @@ -819,7 +819,7 @@ EvolutionCalendarSource::ICalComps_t EvolutionCalendarSource::removeEvents(const // removes all events with that UID, including children GErrorCXX gerror; - if ( + if (!uid.empty() && // e_cal_client_remove_object_sync() in EDS 3.8 aborts the process for empty UID, other versions cannot succeed, so skip the call. #ifdef USE_EDS_CLIENT !e_cal_client_remove_object_sync(m_calendar, uid.c_str(), NULL, CALOBJ_MOD_ALL, |