aboutsummaryrefslogtreecommitdiffstats
path: root/hicn-light/src/hicn/base/bitmap.h
diff options
context:
space:
mode:
authorEnrico Loparco (eloparco) <eloparco@cisco.com>2021-03-30 18:08:34 +0200
committerEnrico Loparco (eloparco) <eloparco@cisco.com>2021-03-31 10:23:35 +0200
commit2fa1eaf5aecbd862e9eba897d989d2fd7adba71e (patch)
tree95237567664cdc8fc7cf8eb3fac9ad27eb11457c /hicn-light/src/hicn/base/bitmap.h
parentf309c4aab4475f5511d00bc236e1f78a457693ed (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.h10
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);