summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDušan Ďurech <dusan.d@centrum.cz>2009-12-27 20:02:01 +0100
committerDušan Ďurech <dusan.d@centrum.cz>2009-12-27 20:02:01 +0100
commitfda7d7a9443a05d7ec0870be482b735a7b4f7ef9 (patch)
tree5b0f9d8436f12620805fbaa4e802001850d45d4d
parent5fe4e9c7370f2c8a8a3e77d97c2b4c6abe6d8b90 (diff)
replace from malloc to realloc, it is more effective
-rw-r--r--src/base/list.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/src/base/list.c b/src/base/list.c
index 40e7749..482b50e 100644
--- a/src/base/list.c
+++ b/src/base/list.c
@@ -69,16 +69,12 @@ void list_add(list_t *p, void *item)
}
if (p->count + 1 > p->alloc) {
- void **new;
#ifdef DEBUG_LIST
printf("[Debug] Reallocating list from %d to %d (count: %d)\n",
p->alloc, p->alloc + LIST_ALLOC_LIMIT, p->count);
#endif
p->alloc += LIST_ALLOC_LIMIT;
- new = malloc(p->alloc * sizeof(void *));
- memcpy(new, p->list, p->count * sizeof(void *));
- free(p->list);
- p->list = new;
+ p->list = realloc(p->list, p->alloc * sizeof(void *));
p->list[p->count] = item;
p->count++;
return;