[2/2] winetest: Replace malloc() & co with HeapAlloc().

Francois Gouget fgouget at free.fr
Thu May 14 18:58:30 CDT 2009


---

And now switching xmalloc() and friends to HeapAlloc() does not require 
hacking all the other files.

 programs/winetest/util.c |   26 ++++++++++++++------------
 1 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/programs/winetest/util.c b/programs/winetest/util.c
index 77c56e7..8b2fdac 100644
--- a/programs/winetest/util.c
+++ b/programs/winetest/util.c
@@ -29,7 +29,7 @@ HANDLE logfile = 0;
 
 void *xmalloc (size_t len)
 {
-    void *p = malloc (len);
+    void *p = HeapAlloc(GetProcessHeap(), 0, len);
 
     if (!p) report (R_FATAL, "Out of memory.");
     return p;
@@ -37,22 +37,24 @@ void *xmalloc (size_t len)
 
 void *xrealloc (void *op, size_t len)
 {
-    void *p = realloc (op, len);
+    void *p = HeapReAlloc(GetProcessHeap(), 0, op, len);
 
     if (len && !p) report (R_FATAL, "Out of memory.");
     return p;
 }
 
-char *xstrdup( const char *str )
+void xfree (void* op)
 {
-    char *res = strdup( str );
-    if (!res) report (R_FATAL, "Out of memory.");
-    return res;
+    HeapFree(GetProcessHeap(), 0, op);
 }
 
-void xfree (void *op)
+char *xstrdup( const char *str )
 {
-    free (op);
+    int len = lstrlen(str) + 1;
+    char* res = HeapAlloc(GetProcessHeap(), 0, len);
+    if (!res) report (R_FATAL, "Out of memory.");
+    memcpy(res, str, len);
+    return res;
 }
 
 static char *vstrfmtmake (size_t *lenp, const char *fmt, va_list ap)
@@ -61,16 +63,16 @@ static char *vstrfmtmake (size_t *lenp, const char *fmt, va_list ap)
     char *p, *q;
     int n;
 
-    p = malloc (size);
+    p = HeapAlloc(GetProcessHeap(), 0, size);
     if (!p) return NULL;
     while (1) {
         n = vsnprintf (p, size, fmt, ap);
         if (n < 0) size *= 2;   /* Windows */
         else if ((unsigned)n >= size) size = n+1; /* glibc */
         else break;
-        q = realloc (p, size);
+        q = HeapReAlloc(GetProcessHeap(), 0, p, size);
         if (!q) {
-          free (p);
+          xfree(p);
           return NULL;
        }
        p = q;
@@ -116,7 +118,7 @@ void xprintf (const char *fmt, ...)
         head += written;
         size -= written;
     }
-    free (buffer);
+    xfree(buffer);
 }
 
 int
-- 
1.6.2.1




More information about the wine-patches mailing list