diff options
author | Enrico Loparco (eloparco) <eloparco@cisco.com> | 2021-03-30 18:08:34 +0200 |
---|---|---|
committer | Enrico Loparco (eloparco) <eloparco@cisco.com> | 2021-03-31 10:23:35 +0200 |
commit | 2fa1eaf5aecbd862e9eba897d989d2fd7adba71e (patch) | |
tree | 95237567664cdc8fc7cf8eb3fac9ad27eb11457c /hicn-light/src/hicn/base/bitmap.h | |
parent | f309c4aab4475f5511d00bc236e1f78a457693ed (diff) |
[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) <eloparco@cisco.com>
Change-Id: Id338e403b09bb22f3a326d2cb28cf09300c0de33
Signed-off-by: Enrico Loparco (eloparco) <eloparco@cisco.com>
Diffstat (limited to 'hicn-light/src/hicn/base/bitmap.h')
-rw-r--r-- | hicn-light/src/hicn/base/bitmap.h | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/hicn-light/src/hicn/base/bitmap.h b/hicn-light/src/hicn/base/bitmap.h index ebc3dddbb..1159806c8 100644 --- a/hicn-light/src/hicn/base/bitmap.h +++ b/hicn-light/src/hicn/base/bitmap.h @@ -59,10 +59,10 @@ typedef uint_fast32_t bitmap_t; */ static inline int -bitmap_ensure_pos(bitmap_t * bitmap, off_t pos) +bitmap_ensure_pos(bitmap_t ** bitmap, off_t pos) { - size_t offset = pos / BITMAP_WIDTH(bitmap); - return vector_ensure_pos(bitmap, offset); + size_t offset = pos / BITMAP_WIDTH(*bitmap); + return vector_ensure_pos(*bitmap, offset); } /** @@ -104,7 +104,7 @@ static inline int bitmap_set(bitmap_t * bitmap, off_t i) { - if (bitmap_ensure_pos(bitmap, i) < 0) + if (bitmap_ensure_pos(&bitmap, i) < 0) return -1; size_t offset = i / BITMAP_WIDTH(bitmap); size_t pos = i % BITMAP_WIDTH(bitmap); @@ -117,7 +117,7 @@ static inline int bitmap_unset(bitmap_t * bitmap, off_t i) { - if (bitmap_ensure_pos(bitmap, i) < 0) + if (bitmap_ensure_pos(&bitmap, i) < 0) return -1; size_t offset = i / BITMAP_WIDTH(bitmap); size_t pos = i % BITMAP_WIDTH(bitmap); |