From 2fa1eaf5aecbd862e9eba897d989d2fd7adba71e Mon Sep 17 00:00:00 2001 From: "Enrico Loparco (eloparco)" Date: Tue, 30 Mar 2021 18:08:34 +0200 Subject: [HICN-558, HICN-556] Fix bugs in pool and bitmap Fix element size in pool. Solve realloc problem in bitmap. Use the object size (not its pointer) when adding an object to the pool. Signed-off-by: Enrico Loparco (eloparco) Change-Id: Id338e403b09bb22f3a326d2cb28cf09300c0de33 Signed-off-by: Enrico Loparco (eloparco) --- hicn-light/src/hicn/base/pool.c | 6 +++--- 1 file changed, 3 insertions(+), 3 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 cb650b9e5..a7c50963d 100644 --- a/hicn-light/src/hicn/base/pool.c +++ b/hicn-light/src/hicn/base/pool.c @@ -116,7 +116,7 @@ _pool_resize(void ** pool_ptr, size_t elt_size) vector_len(ph->free_indices) = old_size; /* We also need to update the bitmap */ - bitmap_ensure_pos(ph->free_bitmap, new_size - 1); + bitmap_ensure_pos(&(ph->free_bitmap), new_size - 1); bitmap_set_range(ph->free_bitmap, old_size, new_size - 1); /* Reassign pool pointer */ @@ -143,8 +143,8 @@ _pool_get(void ** pool_ptr, void ** elt, size_t elt_size) off_t free_id = ph->free_indices[l - 1]; vector_len(ph->free_indices)--; bitmap_unset(ph->free_bitmap, free_id); - *elt = *pool_ptr + free_id; - memset(*elt, 0, sizeof(elt)); + *elt = *pool_ptr + free_id * elt_size; + memset(*elt, 0, elt_size); return free_id; } -- cgit 1.2.3-korg