summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Ohly <patrick.ohly@intel.com>2013-04-11 00:09:40 -0700
committerPatrick Ohly <patrick.ohly@intel.com>2013-05-06 16:28:12 +0200
commit75e3fb86f93140764073e80d7265c5fc397ad5e5 (patch)
tree1d185b4d34e8c613bb85a79b87bf7a16df46df43
parent6156ae620cc70ecab6ec6ce152443f5a5ef71a84 (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.cpp2
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,