From 0b399a3c1a2375d50e5bd18d0ec43e6ce9bf7dfe Mon Sep 17 00:00:00 2001 From: Carsten Haitzler Date: Fri, 4 Nov 2005 07:16:50 +0000 Subject: [PATCH] oops - leak. fixed SVN revision: 18266 --- legacy/eet/src/lib/eet_data.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/legacy/eet/src/lib/eet_data.c b/legacy/eet/src/lib/eet_data.c index 48eb487a15..ededccb38f 100644 --- a/legacy/eet/src/lib/eet_data.c +++ b/legacy/eet/src/lib/eet_data.c @@ -505,11 +505,10 @@ eet_data_chunk_new(void *data, int size, char *name) Eet_Data_Chunk *chnk; if (!name) return NULL; - chnk = malloc(sizeof(Eet_Data_Chunk) + strlen(name) + 1); + chnk = calloc(1, sizeof(Eet_Data_Chunk)); if (!chnk) return NULL; - chnk->name = ((char *)chnk) + sizeof(Eet_Data_Chunk); - strcpy(chnk->name, name); + chnk->name = strdup(name); chnk->size = size; chnk->data = data; @@ -519,6 +518,7 @@ eet_data_chunk_new(void *data, int size, char *name) static void eet_data_chunk_free(Eet_Data_Chunk *chnk) { + if (chnk->name) free(chnk->name); free(chnk); } @@ -792,7 +792,7 @@ _eet_freelist_add(void *data) freelist_num++; if (freelist_num > freelist_len) { - freelist_len += 64; + freelist_len += 16; freelist = realloc(freelist, freelist_len * sizeof(void *)); } freelist[freelist_num - 1] = data;