mm/mempool: Merge two memory requests
Signed-off-by: wangmingrong1 <wangmingrong1@xiaomi.com>
This commit is contained in:
parent
0866010101
commit
5c3025e2fb
1 changed files with 7 additions and 10 deletions
|
|
@ -437,12 +437,18 @@ mempool_multiple_init(FAR const char *name,
|
|||
}
|
||||
}
|
||||
|
||||
mpool = alloc(arg, sizeof(uintptr_t), sizeof(struct mempool_multiple_s));
|
||||
mpool = alloc(arg, sizeof(uintptr_t),
|
||||
sizeof(struct mempool_multiple_s) +
|
||||
npools * sizeof(struct mempool_s));
|
||||
|
||||
if (mpool == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
|
||||
pools = (FAR struct mempool_s *)
|
||||
((uintptr_t)mpool + sizeof(struct mempool_multiple_s));
|
||||
|
||||
mpool->alloc_size = alloc_size;
|
||||
mpool->expandsize = expandsize;
|
||||
mpool->chunk_size = chunksize;
|
||||
|
|
@ -451,12 +457,6 @@ mempool_multiple_init(FAR const char *name,
|
|||
mpool->arg = arg;
|
||||
mpool->alloced = alloc_size(arg, mpool);
|
||||
sq_init(&mpool->chunk_queue);
|
||||
pools = alloc(arg, sizeof(uintptr_t), npools * sizeof(struct mempool_s));
|
||||
if (pools == NULL)
|
||||
{
|
||||
goto err_with_mpool;
|
||||
}
|
||||
|
||||
mpool->pools = pools;
|
||||
mpool->npools = npools;
|
||||
mpool->minpoolsize = minpoolsize;
|
||||
|
|
@ -520,8 +520,6 @@ err_with_pools:
|
|||
}
|
||||
|
||||
mempool_multiple_free_chunk(mpool, pools);
|
||||
err_with_mpool:
|
||||
free(arg, mpool);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
|
@ -900,6 +898,5 @@ void mempool_multiple_deinit(FAR struct mempool_multiple_s *mpool)
|
|||
|
||||
mempool_multiple_free_chunk(mpool, mpool->dict);
|
||||
nxrmutex_destroy(&mpool->lock);
|
||||
mpool->free(mpool->arg, mpool->pools);
|
||||
mpool->free(mpool->arg, mpool);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue