Improved performance of twc_list_get.

Walk the list backwards if we're getting an index closer to the end than the beginning.
This commit is contained in:
Håvard Pettersson 2014-10-12 13:01:32 +02:00
parent 666dd36f8d
commit ffc381b869
1 changed files with 12 additions and 3 deletions

View File

@ -174,11 +174,20 @@ twc_list_get(struct t_twc_list *list, size_t index)
size_t current_index;
struct t_twc_list_item *item;
twc_list_foreach(list, current_index, item)
if (list->count - index > index / 2)
{
if (current_index == index)
twc_list_foreach(list, current_index, item)
{
return item;
if (current_index == index)
return item;
}
}
else
{
twc_list_foreach_reverse(list, current_index, item)
{
if (current_index == index)
return item;
}
}