diff options
| author | Renato Westphal <renato@opensourcerouting.org> | 2021-06-19 12:16:48 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-06-19 12:16:48 -0300 |
| commit | 2f0884023a447c47fd0e3714e2b4f51e68c5dc8d (patch) | |
| tree | 6c7473b68137add10818a8aa61cd7a2badebaa3e | |
| parent | c03d8bd1cccbfd55df35f3dc79ab2126f88cb2f9 (diff) | |
| parent | 0e2deb587843fd18682ff20225b8e8930a52ebbc (diff) | |
Merge pull request #8749 from pjdruddy/bitfield_mtype
lib: add an MTYPE for bitfields
| -rw-r--r-- | lib/bitfield.h | 6 | ||||
| -rw-r--r-- | lib/memory.c | 1 |
2 files changed, 5 insertions, 2 deletions
diff --git a/lib/bitfield.h b/lib/bitfield.h index 244938933b..a3f361ed9d 100644 --- a/lib/bitfield.h +++ b/lib/bitfield.h @@ -60,6 +60,8 @@ typedef unsigned int word_t; */ typedef struct {word_t *data; size_t n, m; } bitfield_t; +DECLARE_MTYPE(BITFIELD); + /** * Initialize the bits. * @v: an instance of bitfield_t struct. @@ -70,7 +72,7 @@ typedef struct {word_t *data; size_t n, m; } bitfield_t; do { \ (v).n = 0; \ (v).m = ((N) / WORD_SIZE + 1); \ - (v).data = calloc(1, ((v).m * sizeof(word_t))); \ + (v).data = XCALLOC(MTYPE_BITFIELD, ((v).m * sizeof(word_t))); \ } while (0) /** @@ -193,7 +195,7 @@ static inline unsigned int bf_find_next_set_bit(bitfield_t v, */ #define bf_free(v) \ do { \ - free((v).data); \ + XFREE(MTYPE_BITFIELD, (v).data); \ (v).data = NULL; \ } while (0) diff --git a/lib/memory.c b/lib/memory.c index 0dc8e90524..18811777ae 100644 --- a/lib/memory.c +++ b/lib/memory.c @@ -36,6 +36,7 @@ struct memgroup **mg_insert = &mg_first; DEFINE_MGROUP(LIB, "libfrr"); DEFINE_MTYPE(LIB, TMP, "Temporary memory"); +DEFINE_MTYPE(LIB, BITFIELD, "Bitfield memory"); static inline void mt_count_alloc(struct memtype *mt, size_t size, void *ptr) { |
