This is an automated email from the ASF dual-hosted git repository. acassis pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/incubator-nuttx.git
commit f240b2e63182eaab3e50166478235824081a423f Author: Xiang Xiao <xiaoxi...@xiaomi.com> AuthorDate: Sun Jun 27 02:43:04 2021 +0800 arch/sim: Remove host_malloc and host_calloc use host_realloc instead Signed-off-by: Xiang Xiao <xiaoxi...@xiaomi.com> --- arch/sim/src/sim/up_heap.c | 19 ++++++++++--------- arch/sim/src/sim/up_hostmemory.c | 30 ++++++++++-------------------- arch/sim/src/sim/up_internal.h | 5 ++--- 3 files changed, 22 insertions(+), 32 deletions(-) diff --git a/arch/sim/src/sim/up_heap.c b/arch/sim/src/sim/up_heap.c index 5d3da3e..1963952 100644 --- a/arch/sim/src/sim/up_heap.c +++ b/arch/sim/src/sim/up_heap.c @@ -144,7 +144,7 @@ void mm_initialize(FAR struct mm_heap_s *heap, FAR const char *name, { FAR struct mm_heap_impl_s *impl; - impl = host_malloc(sizeof(struct mm_heap_impl_s)); + impl = host_memalign(sizeof(FAR void *), sizeof(*impl)); DEBUGASSERT(impl); memset(impl, 0, sizeof(struct mm_heap_impl_s)); @@ -194,10 +194,7 @@ void mm_addregion(FAR struct mm_heap_s *heap, FAR void *heapstart, FAR void *mm_malloc(FAR struct mm_heap_s *heap, size_t size) { - /* Firstly, free mm_delaylist */ - - mm_free_delaylist(heap); - return host_malloc(size); + return mm_realloc(heap, NULL, size); } /**************************************************************************** @@ -236,8 +233,6 @@ FAR void mm_free(FAR struct mm_heap_s *heap, FAR void *mem) { host_free(mem); } - - return; } /**************************************************************************** @@ -280,8 +275,14 @@ FAR void *mm_realloc(FAR struct mm_heap_s *heap, FAR void *oldmem, FAR void *mm_calloc(FAR struct mm_heap_s *heap, size_t n, size_t elem_size) { - mm_free_delaylist(heap); - return host_calloc(n, elem_size); + size_t size = n * elem_size; + + if (size < elem_size) + { + return NULL; + } + + return mm_zalloc(heap, size); } /**************************************************************************** diff --git a/arch/sim/src/sim/up_hostmemory.c b/arch/sim/src/sim/up_hostmemory.c index 03537be..88bc3d1 100644 --- a/arch/sim/src/sim/up_hostmemory.c +++ b/arch/sim/src/sim/up_hostmemory.c @@ -118,26 +118,6 @@ void host_free_shmem(void *mem) munmap(mem, 0); } -void *host_malloc(size_t size) -{ - return malloc(size); -} - -void host_free(void *mem) -{ - free(mem); -} - -void *host_realloc(void *oldmem, size_t size) -{ - return realloc(oldmem, size); -} - -void *host_calloc(size_t n, size_t elem_size) -{ - return calloc(n , elem_size); -} - void *host_memalign(size_t alignment, size_t size) { void *p; @@ -151,3 +131,13 @@ void *host_memalign(size_t alignment, size_t size) return p; } + +void host_free(void *mem) +{ + free(mem); +} + +void *host_realloc(void *oldmem, size_t size) +{ + return realloc(oldmem, size); +} diff --git a/arch/sim/src/sim/up_internal.h b/arch/sim/src/sim/up_internal.h index 43dbede..4ad4d0f 100644 --- a/arch/sim/src/sim/up_internal.h +++ b/arch/sim/src/sim/up_internal.h @@ -143,11 +143,10 @@ void host_abort(int status); void *host_alloc_heap(size_t sz); void *host_alloc_shmem(const char *name, size_t size, int master); void host_free_shmem(void *mem); -void *host_malloc(size_t size); + +void *host_memalign(size_t alignment, size_t size); void host_free(void *mem); void *host_realloc(void *oldmem, size_t size); -void *host_calloc(size_t n, size_t elem_size); -void *host_memalign(size_t alignment, size_t size); /* up_hosttime.c ************************************************************/