So calendar_date is non-NULL and get_all_appointments_this_month() got a ymd of 2013/8/21 out of it, then created 'begin' with g_date_time_new_local (2013, 8, 1, 0, 0, 0), and passes it to indicator_datetime_planner_get_appointments(), which sees it as NULL.
So it looks like g_date_time_new_local() is returning NULL. It's a wrapper func that gets the local timezone and calls g_date_time_new(), which returns NULL if it's fed invalid arguments. 2013, 8, 1, 0, 0, 0 seem valid.
The sanity check in g_date_time_new() looks like this:
> #3 0x0804c0ce in indicator_ datetime_ planner_ get_appointment s (self=0x9dfbc10, entry=0x0, end=end@ entry=0xb5005e7 8) at planner.c:188 datetime_ planner_ get_appointment s" appointments_ this_month (self=0x9df98c8) at service.c:592
> begin=begin@
> appointments = <optimized out>
> __PRETTY_FUNCTION__ = "indicator_
> #4 0x0804d5d2 in get_all_
> calendar_date = 0xb5005ca8
> begin = <optimized out>
> end = 0xb5005e78
> y = 2013
> m = 8
> d = 21
> appointments = 0x0
> p = 0x9df9850
Here's the code in indicator-datetime:
> calendar_date = get_calendar_date (self); time_new_ local (y, m, 1, time_new_ local (y, m, g_date_ get_days_ in_month( m,y), datetime_ planner_ get_appointment s (p->planner,
> g_date_time_get_ymd (calendar_date, &y, &m, &d);
> begin = g_date_
> 0, 0, 0);
> end = g_date_
> 23, 59, 0);
>
> appointments = indicator_
> begin,
> end);
So calendar_date is non-NULL and get_all_ appointments_ this_month( ) got a ymd of 2013/8/21 out of it, then created 'begin' with g_date_ time_new_ local (2013, 8, 1, 0, 0, 0), and passes it to indicator_ datetime_ planner_ get_appointment s(), which sees it as NULL.
So it looks like g_date_ time_new_ local() is returning NULL. It's a wrapper func that gets the local timezone and calls g_date_time_new(), which returns NULL if it's fed invalid arguments. 2013, 8, 1, 0, 0, 0 seem valid.
The sanity check in g_date_time_new() looks like this:
> if (year < 1 || year > 9999 ||
> month < 1 || month > 12 ||
> day < 1 || day > 31 ||
> hour < 0 || hour > 23 ||
> minute < 0 || minute > 59 ||
> seconds < 0.0 || seconds >= 60.0)
> return NULL;
seconds is a gdouble, so maybe this is a floating point accuracy issue with testing "0.0 < 0.0"?