aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2004-02-16 16:23:19 +0000
committerDaniel Stenberg <daniel@haxx.se>2004-02-16 16:23:19 +0000
commitf2fbb5f3d52bf1dfc8e179945016024e47736e4c (patch)
tree449c1a396f694061ece06b28ff1f1c070060628a
parent29bedfcf7f55f1bb5539921de0ebfec641518dcb (diff)
Make realloc() support NULL as pointer. Made to allow us to use these routines
to memdebug the ares stuff as well.
-rw-r--r--lib/memdebug.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/memdebug.c b/lib/memdebug.c
index aea6f324b..d08de6a2d 100644
--- a/lib/memdebug.c
+++ b/lib/memdebug.c
@@ -152,21 +152,24 @@ char *curl_dostrdup(const char *str, int line, const char *source)
return mem;
}
+/* We provide a realloc() that accepts a NULL as pointer, which then
+ performs a malloc(). In order to work with ares. */
void *curl_dorealloc(void *ptr, size_t wantedsize,
int line, const char *source)
{
- struct memdebug *mem;
+ struct memdebug *mem=NULL;
size_t size = sizeof(struct memdebug)+wantedsize;
if(countcheck("realloc", line, source))
return NULL;
- mem = (struct memdebug *)((char *)ptr - offsetof(struct memdebug, mem));
+ if(ptr)
+ mem = (struct memdebug *)((char *)ptr - offsetof(struct memdebug, mem));
mem=(struct memdebug *)(realloc)(mem, size);
if(logfile)
- fprintf(logfile, "MEM %s:%d realloc(%p, %d) = %p\n",
+ fprintf(logfile, "MEM %s:%d realloc(0x%x, %d) = %p\n",
source, line, ptr, wantedsize, mem?mem->mem:NULL);
if(mem) {