mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-09 00:00:00 +01:00
improved pool_foreach iterator
This commit is contained in:
parent
cc82004dc6
commit
305e411814
2 changed files with 2 additions and 20 deletions
|
@ -23,9 +23,8 @@
|
|||
#define pool_previous(pool) pool_getrel(pool, -1)
|
||||
|
||||
/** Iterate through the circuluar buffer. */
|
||||
#define pool_foreach(it, pool, start, end) for (it = pool_get(pool, start); \
|
||||
it != pool_get(pool, end); \
|
||||
it = pool_get_next(pool, it))
|
||||
#define pool_foreach(ptr, pool, start, end) for (int _i = start, _p; _p = 1, _i < end; _i++) \
|
||||
for (ptr = pool_get(pool, _i); _p--; )
|
||||
|
||||
/** Return the number of elements in the pool. */
|
||||
#define pool_length(pool) ((pool)->length)
|
||||
|
@ -62,11 +61,4 @@ void * pool_get(struct pool *p, int index);
|
|||
/** Return pointer relative to last inserted element. */
|
||||
void * pool_getrel(struct pool *p, int offset);
|
||||
|
||||
/** Return next element after ptr */
|
||||
void * pool_get_next(struct pool *p, void *ptr);
|
||||
|
||||
/** Return element before ptr */
|
||||
void * pool_get_previous(struct pool *p, void *ptr);
|
||||
|
||||
|
||||
#endif /* _POOL_H_ */
|
10
lib/pool.c
10
lib/pool.c
|
@ -46,13 +46,3 @@ void * pool_getrel(struct pool *p, int offset)
|
|||
{
|
||||
return pool_get(p, p->last + offset);
|
||||
}
|
||||
|
||||
void * pool_get_next(struct pool *p, void *ptr)
|
||||
{
|
||||
ptr += p->stride;
|
||||
|
||||
if (ptr < p->buffer + p->length)
|
||||
ptr -= p->length;
|
||||
|
||||
return ptr;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue