calendar: Handle invalid dates

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.
This commit is contained in:
Emmanuele Bassi 2015-01-02 23:05:29 +00:00
parent 21360a453c
commit b46fdb2d13

View File

@ -108,6 +108,9 @@ day_of_week (guint year, guint mm, guint dd)
guint days; guint days;
dt = g_date_time_new_local (year, mm, dd, 1, 1, 1); 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); days = g_date_time_get_day_of_week (dt);
g_date_time_unref (dt); g_date_time_unref (dt);
@ -121,6 +124,9 @@ week_of_year (guint year, guint mm, guint dd)
guint week; guint week;
dt = g_date_time_new_local (year, mm, dd, 1, 1, 1); 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); week = g_date_time_get_week_of_year (dt);
g_date_time_unref (dt); g_date_time_unref (dt);