queue_node *node)
{
tbm_queue_sequence *data = (tbm_queue_sequence *)surface_queue->impl_data;
- queue_node *next = NULL, *tmp;
+ queue_node *first = NULL;
+
+ first = container_of(data->dequeue_list.head.next, first, item_link);
+ if (first != node) {
+ return;
+ }
node->priv_flags = 0;
- LIST_FOR_EACH_ENTRY_SAFE(next, tmp, &data->dequeue_list.head, item_link) {
- if (next->priv_flags)
- break;
- _queue_node_pop(&data->dequeue_list, next);
- _tbm_surface_queue_enqueue(surface_queue, next, 1);
- }
+ _queue_node_pop(&data->dequeue_list, node);
+ _tbm_surface_queue_enqueue(surface_queue, node, 1);
}
static void