]> granicus.if.org Git - curl/commitdiff
Make realloc() support NULL as pointer. Made to allow us to use these routines
authorDaniel Stenberg <daniel@haxx.se>
Mon, 16 Feb 2004 16:23:19 +0000 (16:23 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 16 Feb 2004 16:23:19 +0000 (16:23 +0000)
to memdebug the ares stuff as well.

lib/memdebug.c

index aea6f324b8e233fc6887a73aa30ab05f3ec54e51..d08de6a2d6d8a04c6186b6bc8ec27108a4f6fb26 100644 (file)
@@ -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) {