Swap arguments of LocalAlloc and only update Malloc32 block on successful
[reactos.git] / reactos / lib / ole32 / ifs.c
index f4e7c48..7b03600 100644 (file)
@@ -73,10 +73,16 @@ static CRITICAL_SECTION IMalloc32_SpyCS = { &critsect_debug, -1, 0, 0, 0, 0 };
 /* resize the old table */
 static int SetSpyedBlockTableLength ( int NewLength )
 {
-       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;
+       LPVOID *NewSpyedBlocks;
+
+       if (!Malloc32.SpyedBlocks) NewSpyedBlocks = (LPVOID*)LocalAlloc(GMEM_ZEROINIT, NewLength);
+        else NewSpyedBlocks = (LPVOID*)LocalReAlloc((HLOCAL)Malloc32.SpyedBlocks, NewLength, GMEM_ZEROINIT);
+       if (NewSpyedBlocks) {
+               Malloc32.SpyedBlocks = NewSpyedBlocks;
+               Malloc32.SpyedBlockTableLength = NewLength;
+       }
+
+       return NewSpyedBlocks ? 1 : 0;
 }
 
 /* add a location to the table */