More ReAlloc fixes

Dimitrie O. Paun dpaun at rogers.com
Tue Nov 25 02:11:03 CST 2003


With this patch, all *ReAlloc* places have been audited
and, where necessary, fixed.

We now have to fix all there realloc funcs to not allocate
memory (where appropriate).

ChangeLog
    {Global,Local}ReAlloc() does not allocate memory.

Index: dlls/ole32/ifs.c
===================================================================
RCS file: /var/cvs/wine/dlls/ole32/ifs.c,v
retrieving revision 1.31
diff -u -r1.31 ifs.c
--- dlls/ole32/ifs.c	11 Sep 2003 03:06:25 -0000	1.31
+++ dlls/ole32/ifs.c	25 Nov 2003 08:03:12 -0000
@@ -73,7 +73,8 @@
 /* resize the old table */
 static int SetSpyedBlockTableLength ( int NewLength )
 {
-        Malloc32.SpyedBlocks = (LPVOID*)LocalReAlloc((HLOCAL)Malloc32.SpyedBlocks, NewLength, GMEM_ZEROINIT);
+	if (!Malloc32.SpyedBlocks) Malloc32.SpyedBlocks = (LPVOID*)LocalAlloc(NewLength, GMEM_ZEROINIT);
+        else Malloc32.SpyedBlocks = (LPVOID*)LocalReAlloc((HLOCAL)Malloc32.SpyedBlocks, NewLength, GMEM_ZEROINIT);
         Malloc32.SpyedBlockTableLength = NewLength;
         return Malloc32.SpyedBlocks ? 1 : 0;
 }
Index: dlls/shell32/shell32_main.c
===================================================================
RCS file: /var/cvs/wine/dlls/shell32/shell32_main.c,v
retrieving revision 1.126
diff -u -r1.126 shell32_main.c
--- dlls/shell32/shell32_main.c	18 Nov 2003 19:50:24 -0000	1.126
+++ dlls/shell32/shell32_main.c	25 Nov 2003 07:47:04 -0000
@@ -92,15 +92,15 @@
 
     if (*lpCmdline==0) {
         /* Return the path to the executable */
-        DWORD size;
+        DWORD size=16;
 
-        hargv=0;
-        size=16;
-        do {
+        hargv=GlobalAlloc(size, 0);
+	argv=GlobalLock(hargv);
+	while (GetModuleFileNameW(0, (LPWSTR)(argv+1), size-sizeof(LPWSTR)) == 0) {
             size*=2;
             hargv=GlobalReAlloc(hargv, size, 0);
             argv=GlobalLock(hargv);
-        } while (GetModuleFileNameW(0, (LPWSTR)(argv+1), size-sizeof(LPWSTR)) == 0);
+        }
         argv[0]=(LPWSTR)(argv+1);
         if (numargs)
             *numargs=2;


-- 
Dimi.




More information about the wine-patches mailing list