diff options
author | Jeremy Allison <jra@samba.org> | 2001-07-02 22:17:58 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2001-07-02 22:17:58 +0000 |
commit | 1ab31e5db53bc839d2785cce4d3c739c8004bbf6 (patch) | |
tree | a5d2585a8452d871f437c08e6b997f0332fa45ca /source/lib/talloc.c | |
parent | 1685e41da04f1fbbab036e194ce1b1e7ba9fef86 (diff) | |
download | samba-1ab31e5db53bc839d2785cce4d3c739c8004bbf6.tar.gz samba-1ab31e5db53bc839d2785cce4d3c739c8004bbf6.tar.xz samba-1ab31e5db53bc839d2785cce4d3c739c8004bbf6.zip |
Made talloc_realloc() semantics match realloc(). JF was complaining :-).
realloc(NULL) == malloc. realloc(p,0) == free() - a no-op in talloc.
Jeremy.
Diffstat (limited to 'source/lib/talloc.c')
-rw-r--r-- | source/lib/talloc.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source/lib/talloc.c b/source/lib/talloc.c index e83369f379e..a8ee481744b 100644 --- a/source/lib/talloc.c +++ b/source/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); |