fix a bug in call to realloc inside a function

This commit is contained in:
Laurent THOMAS
2022-01-12 16:12:36 +01:00
parent d108d9c651
commit d751568689
6 changed files with 30 additions and 24 deletions
+7 -2
View File
@@ -48,6 +48,8 @@
#include "UTIL/MEM/mem_block.h"
#include <common/utils/assertions.h>
//-----------------------------------------------------------------------------
void list_init (list_t* , char *);
@@ -126,10 +128,13 @@ static inline void * dataArray(varArray_t * input) {
return input+1;
}
static inline void appendVarArray(varArray_t * input, void* data) {
static inline void appendVarArray(varArray_t ** inputPtr, void* data) {
varArray_t *input=*inputPtr;
if (input->size>=input->mallocedSize) {
input->mallocedSize+=input->increment;
input=(varArray_t *)realloc(input,sizeof(varArray_t)+input->mallocedSize*input->atomSize);
*inputPtr=(varArray_t *)realloc(input,sizeof(varArray_t)+input->mallocedSize*input->atomSize);
AssertFatal(*inputPtr, "no memory left");
input=*inputPtr;
}
memcpy((uint8_t*)(input+1)+input->atomSize*input->size++, data, input->atomSize);
}