From bf395e10c52094c44b1a6e0b7fedc35c35de0641 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20G=C3=B6ttsche?= Date: Fri, 10 Sep 2021 15:09:42 +0200 Subject: Add xReallocArrayZero() helper Add helper function to reallocate an dynamic allocated array including zeroing the newly allocated memory. --- XUtils.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'XUtils.c') diff --git a/XUtils.c b/XUtils.c index 13327e0f..c589d780 100644 --- a/XUtils.c +++ b/XUtils.c @@ -78,6 +78,22 @@ void* xReallocArray(void* ptr, size_t nmemb, size_t size) { return xRealloc(ptr, nmemb * size); } +void* xReallocArrayZero(void* ptr, size_t prevmemb, size_t newmemb, size_t size) { + assert((ptr == NULL) == (prevmemb == 0)); + + if (prevmemb == newmemb) { + return ptr; + } + + void* ret = xReallocArray(ptr, newmemb, size); + + if (newmemb > prevmemb) { + memset((unsigned char*)ret + prevmemb * size, '\0', (newmemb - prevmemb) * size); + } + + return ret; +} + inline bool String_contains_i(const char* s1, const char* s2) { return strcasestr(s1, s2) != NULL; } -- cgit v1.2.3