Lines Matching refs:items
19 ARRAY(struct priorityq_item *) items;
29 i_array_init(&pq->items, init_size);
38 array_free(&pq->items);
44 return array_count(&pq->items);
47 static void heap_items_swap(struct priorityq_item **items,
53 i_assert(items[idx1]->idx == idx1);
54 i_assert(items[idx2]->idx == idx2);
56 items[idx1]->idx = idx2;
57 items[idx2]->idx = idx1;
60 tmp = items[idx1];
61 items[idx1] = items[idx2];
62 items[idx2] = tmp;
68 struct priorityq_item **items;
71 items = array_get_modifiable(&pq->items, &count);
76 if (pq->cmp_callback(items[idx], items[parent_idx]) >= 0)
80 heap_items_swap(items, idx, parent_idx);
88 struct priorityq_item **items;
91 items = array_get_modifiable(&pq->items, &count);
95 pq->cmp_callback(items[left_idx], items[right_idx]) < 0)
100 if (pq->cmp_callback(items[min_child_idx], items[idx]) >= 0)
104 heap_items_swap(items, idx, min_child_idx);
111 item->idx = array_count(&pq->items);
112 array_append(&pq->items, &item, 1);
118 struct priorityq_item **items;
121 items = array_get_modifiable(&pq->items, &count);
126 heap_items_swap(items, idx, count);
127 array_delete(&pq->items, count, 1);
144 struct priorityq_item *const *items;
146 if (array_count(&pq->items) == 0)
149 items = array_idx(&pq->items, 0);
150 return items[0];
167 if (array_count(&pq->items) == 0)
170 return array_idx(&pq->items, 0);