timeline: Protect against NULL arrays
This commit is contained in:
@@ -271,9 +271,6 @@ calculate_changed_events (GcalTimeline *self,
|
|||||||
gint range_diff;
|
gint range_diff;
|
||||||
gint i;
|
gint i;
|
||||||
|
|
||||||
events_to_add = g_ptr_array_new ();
|
|
||||||
events_to_remove = g_ptr_array_new ();
|
|
||||||
|
|
||||||
overlap = gcal_range_calculate_overlap (new_range, old_range, NULL);
|
overlap = gcal_range_calculate_overlap (new_range, old_range, NULL);
|
||||||
|
|
||||||
if (overlap == GCAL_RANGE_NO_OVERLAP)
|
if (overlap == GCAL_RANGE_NO_OVERLAP)
|
||||||
@@ -292,6 +289,9 @@ calculate_changed_events (GcalTimeline *self,
|
|||||||
|
|
||||||
GCAL_TRACE_MSG ("Ranges overlap, doing a diff");
|
GCAL_TRACE_MSG ("Ranges overlap, doing a diff");
|
||||||
|
|
||||||
|
events_to_add = g_ptr_array_new ();
|
||||||
|
events_to_remove = g_ptr_array_new ();
|
||||||
|
|
||||||
old_range_start = gcal_range_get_start (old_range);
|
old_range_start = gcal_range_get_start (old_range);
|
||||||
old_range_end = gcal_range_get_end (old_range);
|
old_range_end = gcal_range_get_end (old_range);
|
||||||
new_range_start = gcal_range_get_start (new_range);
|
new_range_start = gcal_range_get_start (new_range);
|
||||||
@@ -348,7 +348,7 @@ calculate_changed_events (GcalTimeline *self,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < events_to_remove->len; i++)
|
for (i = 0; events_to_remove && i < events_to_remove->len; i++)
|
||||||
{
|
{
|
||||||
GcalEvent *event = g_ptr_array_index (events_to_remove, i);
|
GcalEvent *event = g_ptr_array_index (events_to_remove, i);
|
||||||
|
|
||||||
@@ -360,7 +360,7 @@ calculate_changed_events (GcalTimeline *self,
|
|||||||
queue_event_data (self, REMOVE_EVENT, subscriber, event, NULL, FALSE);
|
queue_event_data (self, REMOVE_EVENT, subscriber, event, NULL, FALSE);
|
||||||
}
|
}
|
||||||
|
|
||||||
for (i = 0; i < events_to_add->len; i++)
|
for (i = 0; events_to_add && i < events_to_add->len; i++)
|
||||||
{
|
{
|
||||||
GcalEvent *event = g_ptr_array_index (events_to_add, i);
|
GcalEvent *event = g_ptr_array_index (events_to_add, i);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user