From d6d9375efd9baf3eefc8550e5f4b964914597511 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Mon, 2 Jul 2001 22:17:58 +0000 Subject: Made talloc_realloc() semantics match realloc(). JF was complaining :-). realloc(NULL) == malloc. realloc(p,0) == free() - a no-op in talloc. Jeremy. (This used to be commit 1ab31e5db53bc839d2785cce4d3c739c8004bbf6) --- source3/lib/talloc.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'source3/lib/talloc.c') diff --git a/source3/lib/talloc.c b/source3/lib/talloc.c index e83369f379..a8ee481744 100644 --- a/source3/lib/talloc.c +++ b/source3/lib/talloc.c @@ -80,6 +80,14 @@ void *talloc_realloc(TALLOC_CTX *t, void *ptr, size_t size) { struct talloc_chunk *tc; + /* size zero is equivalent to free() */ + if (size == 0) + return NULL; + + /* realloc(NULL) is equavalent to malloc() */ + if (ptr == NULL) + return talloc(t, size); + for (tc=t->list; tc; tc=tc->next) { if (tc->ptr == ptr) { ptr = realloc(ptr, size); -- cgit