From 46f02630a1c2f75e852ef6311798645f18bfc3a6 Mon Sep 17 00:00:00 2001 From: Abhinav Gupta Date: Wed, 30 Nov 2011 17:52:02 +0000 Subject: [PATCH] ICU-8818 implement uprv_calloc X-SVN-Rev: 30991 --- icu4c/source/common/cmemory.c | 10 ++++++++++ icu4c/source/common/cmemory.h | 3 +++ 2 files changed, 13 insertions(+) diff --git a/icu4c/source/common/cmemory.c b/icu4c/source/common/cmemory.c index 5b72e7e5a8e..5132ce06ba6 100644 --- a/icu4c/source/common/cmemory.c +++ b/icu4c/source/common/cmemory.c @@ -82,6 +82,16 @@ uprv_free(void *buffer) { } } +U_CAPI void * U_EXPORT2 +uprv_calloc(size_t num, size_t size) { + size *= num; + void * mem = uprv_malloc(size); + if (mem) { + uprv_memset(mem, 0, size); + } + return mem; +} + U_CAPI void U_EXPORT2 u_setMemoryFunctions(const void *context, UMemAllocFn *a, UMemReallocFn *r, UMemFreeFn *f, UErrorCode *status) { diff --git a/icu4c/source/common/cmemory.h b/icu4c/source/common/cmemory.h index b6bc172e9cc..c48e7a4c3ef 100644 --- a/icu4c/source/common/cmemory.h +++ b/icu4c/source/common/cmemory.h @@ -43,6 +43,9 @@ uprv_realloc(void *mem, size_t size); U_CAPI void U_EXPORT2 uprv_free(void *mem); +U_CAPI void * U_EXPORT2 +uprv_calloc(size_t num, size_t size); + /** * This should align the memory properly on any machine. * This is very useful for the safeClone functions. -- 2.40.0