From b46fdb2d13a072bd9d91c316cae3e9139ea512b5 Mon Sep 17 00:00:00 2001 From: Emmanuele Bassi Date: Fri, 2 Jan 2015 23:05:29 +0000 Subject: [PATCH] calendar: Handle invalid dates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GtkCalendar can have an invalid date — mostly at initialization. This means that GDateTime construction may fail. We need to handle that case gracefully, like the old code did. This fixes the `notify` test suite, which started failing with: /Notification/GtkCalendar: GLib-CRITICAL **: g_date_time_get_day_of_week: assertion 'datetime != NULL' failed inside the Continuous builder. --- gtk/gtkcalendar.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gtk/gtkcalendar.c b/gtk/gtkcalendar.c index 3985a7d42e..b4ef54307b 100644 --- a/gtk/gtkcalendar.c +++ b/gtk/gtkcalendar.c @@ -108,6 +108,9 @@ day_of_week (guint year, guint mm, guint dd) guint days; dt = g_date_time_new_local (year, mm, dd, 1, 1, 1); + if (dt == NULL) + return 0; + days = g_date_time_get_day_of_week (dt); g_date_time_unref (dt); @@ -121,6 +124,9 @@ week_of_year (guint year, guint mm, guint dd) guint week; dt = g_date_time_new_local (year, mm, dd, 1, 1, 1); + if (dt == NULL) + return 1; + week = g_date_time_get_week_of_year (dt); g_date_time_unref (dt);