Skip to content

Commit 23ead4c

Browse files
committed
objpool: simplify objpool_iterate()
No need to check `mask != 0` before the loop - the loop already does it. Signed-off-by: Guennadi Liakhovetski <guennadi.liakhovetski@linux.intel.com>
1 parent 6a40345 commit 23ead4c

1 file changed

Lines changed: 2 additions & 7 deletions

File tree

src/lib/objpool.c

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -162,15 +162,10 @@ int objpool_iterate(struct objpool_head *head, objpool_iterate_cb cb, void *arg)
162162
list_for_item(list, &head->list) {
163163
struct objpool *pobjpool = container_of(list, struct objpool, list);
164164
size_t aligned_size = ALIGN_UP(pobjpool->size, sizeof(int));
165-
uint32_t mask = pobjpool->mask;
166-
unsigned int bit;
167165

168-
if (!mask)
169-
/* all free */
170-
continue;
166+
for (uint32_t mask = pobjpool->mask; mask; mask &= ~BIT(bit)) {
167+
unsigned int bit = ffs(mask) - 1;
171168

172-
for (; mask; mask &= ~BIT(bit)) {
173-
bit = ffs(mask) - 1;
174169
if (cb(pobjpool->data + bit * aligned_size, arg))
175170
return 0;
176171
}

0 commit comments

Comments
 (0)