From 6ffbb5ed61733b8dbef39b1a9d437e899e9359d7 Mon Sep 17 00:00:00 2001 From: "Enrico Loparco (eloparco)" Date: Sat, 3 Apr 2021 00:03:57 +0200 Subject: [HICN-558] Fix bug in pool_put and add tests for several pool_get / pool_put Signed-off-by: Enrico Loparco (eloparco) Change-Id: Ie0ee6d17ab87586143ecf07e648d22b3af72bbcd --- hicn-light/src/hicn/base/pool.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'hicn-light/src/hicn/base/pool.c') diff --git a/hicn-light/src/hicn/base/pool.c b/hicn-light/src/hicn/base/pool.c index a7c50963d..662c1233c 100644 --- a/hicn-light/src/hicn/base/pool.c +++ b/hicn-light/src/hicn/base/pool.c @@ -154,7 +154,8 @@ _pool_put(void ** pool_ptr, void ** elt, size_t elt_size) pool_hdr_t * ph = pool_hdr(*pool_ptr); uint64_t l = vector_len(ph->free_indices); vector_ensure_pos(ph->free_indices, l); - ph->free_indices[l] = *elt - *pool_ptr; + off_t freed_id = (*elt - *pool_ptr) / elt_size; + ph->free_indices[l] = freed_id; vector_len(ph->free_indices)++; - bitmap_set(ph->free_bitmap, l); + bitmap_set(ph->free_bitmap, freed_id); } -- cgit 1.2.3-korg