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

View File

@ -174,11 +174,20 @@ twc_list_get(struct t_twc_list *list, size_t index)
size_t current_index; size_t current_index;
struct t_twc_list_item *item; 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;
} }
} }