diff options
author | Philip Withnall <philip@tecnocode.co.uk> | 2017-01-28 01:00:01 +0000 |
---|---|---|
committer | Philip Withnall <philip@tecnocode.co.uk> | 2017-02-01 23:27:01 +0000 |
commit | c658bb404b435fb054a86dbd5a060184d5fd6ba5 (patch) | |
tree | f18f879856d1a1620adebd38a71438fa3aafaaf9 /gdata/services | |
parent | b44646093db8f41de952c9b740529cb849c73122 (diff) | |
download | libgdata-c658bb404b435fb054a86dbd5a060184d5fd6ba5.tar.gz |
calendar: Fix parsing of organizers without e-mail addresses
It turns out the e-mail address for an organizer is optional.
https://developers.google.com/google-apps/calendar/v3/reference/events#organizer.email
Add a test.
Diffstat (limited to 'gdata/services')
-rw-r--r-- | gdata/services/calendar/gdata-calendar-event.c | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/gdata/services/calendar/gdata-calendar-event.c b/gdata/services/calendar/gdata-calendar-event.c index 8ed3ec7d..b952a522 100644 --- a/gdata/services/calendar/gdata-calendar-event.c +++ b/gdata/services/calendar/gdata-calendar-event.c @@ -943,20 +943,10 @@ parse_json (GDataParsable *parsable, JsonReader *reader, gpointer user_data, GEr } else if (g_strcmp0 (json_reader_get_member_name (reader), "organizer") == 0) { const GError *child_error = NULL; - /* This actually gives the parent calendar. */ - json_reader_read_member (reader, "email"); - child_error = json_reader_get_error (reader); - if (child_error != NULL) { - gdata_parser_error_from_json_error (reader, - child_error, - error); - json_reader_end_member (reader); - return FALSE; - } - - g_free (priv->organiser_email); - priv->organiser_email = g_strdup (json_reader_get_string_value (reader)); - + /* This actually gives the parent calendar. Optional. */ + g_clear_pointer (&priv->organiser_email, g_free); + if (json_reader_read_member (reader, "email")) + priv->organiser_email = g_strdup (json_reader_get_string_value (reader)); json_reader_end_member (reader); return TRUE; |