]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
lib: mempool-alloconly - Use container_of instead of casts
authorJosef 'Jeff' Sipek <jeff.sipek@dovecot.fi>
Wed, 20 Jun 2018 15:18:13 +0000 (11:18 -0400)
committerVille Savolainen <ville.savolainen@dovecot.fi>
Wed, 6 Feb 2019 08:08:32 +0000 (10:08 +0200)
src/lib/mempool-alloconly.c

index 4e1b522979a85abf261e6e876bcc958d3d5e56c8..be669454e81eb856c0167a0e6020a269e112de85 100644 (file)
@@ -272,7 +272,7 @@ pool_t pool_alloconly_create_clean(const char *name, size_t size)
        pool_t pool;
 
        pool = pool_alloconly_create(name, size);
-       apool = (struct alloconly_pool *)pool;
+       apool = container_of(pool, struct alloconly_pool, pool);
        apool->clean_frees = TRUE;
        return pool;
 }
@@ -301,7 +301,8 @@ static void pool_alloconly_destroy(struct alloconly_pool *apool)
 static const char *pool_alloconly_get_name(pool_t pool ATTR_UNUSED)
 {
 #ifdef DEBUG
-       struct alloconly_pool *apool = (struct alloconly_pool *)pool;
+       struct alloconly_pool *apool =
+               container_of(pool, struct alloconly_pool, pool);
 
        return apool->name;
 #else
@@ -311,14 +312,16 @@ static const char *pool_alloconly_get_name(pool_t pool ATTR_UNUSED)
 
 static void pool_alloconly_ref(pool_t pool)
 {
-       struct alloconly_pool *apool = (struct alloconly_pool *)pool;
+       struct alloconly_pool *apool =
+               container_of(pool, struct alloconly_pool, pool);
 
        apool->refcount++;
 }
 
 static void pool_alloconly_unref(pool_t *pool)
 {
-       struct alloconly_pool *apool = (struct alloconly_pool *)*pool;
+       struct alloconly_pool *apool =
+               container_of(*pool, struct alloconly_pool, pool);
 
        /* erase the pointer before freeing anything, as the pointer may
           exist inside the pool's memory area */
@@ -373,7 +376,8 @@ static void block_alloc(struct alloconly_pool *apool, size_t size)
 
 static void *pool_alloconly_malloc(pool_t pool, size_t size)
 {
-       struct alloconly_pool *apool = (struct alloconly_pool *)pool;
+       struct alloconly_pool *apool =
+               container_of(pool, struct alloconly_pool, pool);
        void *mem;
        size_t alloc_size;
 
@@ -408,7 +412,8 @@ static void *pool_alloconly_malloc(pool_t pool, size_t size)
 
 static void pool_alloconly_free(pool_t pool, void *mem)
 {
-       struct alloconly_pool *apool = (struct alloconly_pool *)pool;
+       struct alloconly_pool *apool =
+               container_of(pool, struct alloconly_pool, pool);
 
        /* we can free only the last allocation */
        if (POOL_BLOCK_DATA(apool->block) +
@@ -442,7 +447,8 @@ static bool pool_alloconly_try_grow(struct alloconly_pool *apool, void *mem, siz
 static void *pool_alloconly_realloc(pool_t pool, void *mem,
                                    size_t old_size, size_t new_size)
 {
-       struct alloconly_pool *apool = (struct alloconly_pool *)pool;
+       struct alloconly_pool *apool =
+               container_of(pool, struct alloconly_pool, pool);
        unsigned char *new_mem;
 
        if (unlikely(new_size == 0 || new_size > SSIZE_T_MAX - POOL_ALLOCONLY_MAX_EXTRA))
@@ -469,7 +475,8 @@ static void *pool_alloconly_realloc(pool_t pool, void *mem,
 
 static void pool_alloconly_clear(pool_t pool)
 {
-       struct alloconly_pool *apool = (struct alloconly_pool *)pool;
+       struct alloconly_pool *apool =
+               container_of(pool, struct alloconly_pool, pool);
        struct pool_block *block;
        size_t base_size, avail_size;
 
@@ -509,14 +516,16 @@ static void pool_alloconly_clear(pool_t pool)
 
 static size_t pool_alloconly_get_max_easy_alloc_size(pool_t pool)
 {
-       struct alloconly_pool *apool = (struct alloconly_pool *)pool;
+       struct alloconly_pool *apool =
+               container_of(pool, struct alloconly_pool, pool);
 
        return apool->block->left;
 }
 
 size_t pool_alloconly_get_total_used_size(pool_t pool)
 {
-       struct alloconly_pool *apool = (struct alloconly_pool *)pool;
+       struct alloconly_pool *apool =
+               container_of(pool, struct alloconly_pool, pool);
        struct pool_block *block;
        size_t size = 0;
 
@@ -529,7 +538,8 @@ size_t pool_alloconly_get_total_used_size(pool_t pool)
 
 size_t pool_alloconly_get_total_alloc_size(pool_t pool)
 {
-       struct alloconly_pool *apool = (struct alloconly_pool *)pool;
+       struct alloconly_pool *apool =
+               container_of(pool, struct alloconly_pool, pool);
        struct pool_block *block;
        size_t size = 0;