Jesse Litton : dbghelp: Don't double memory allocation on every add.

Alexandre Julliard julliard at winehq.org
Wed Aug 19 11:32:32 CDT 2009


Module: wine
Branch: master
Commit: 43a35958f698871ff01573b61030d80d0097e008
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=43a35958f698871ff01573b61030d80d0097e008

Author: Jesse Litton <wine at eternaldusk.com>
Date:   Sat Aug 15 09:31:50 2009 -0500

dbghelp: Don't double memory allocation on every add.

---

 dlls/dbghelp/minidump.c |   14 +++++++-------
 1 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/dlls/dbghelp/minidump.c b/dlls/dbghelp/minidump.c
index 4108ef4..a2f1633 100644
--- a/dlls/dbghelp/minidump.c
+++ b/dlls/dbghelp/minidump.c
@@ -260,7 +260,7 @@ static BOOL add_module(struct dump_context* dc, const WCHAR* name,
         dc->modules = HeapAlloc(GetProcessHeap(), 0,
                                 dc->alloc_modules * sizeof(*dc->modules));
     }
-    else
+    else if(dc->num_modules >= dc->alloc_modules)
     {
         dc->alloc_modules *= 2;
         dc->modules = HeapReAlloc(GetProcessHeap(), 0, dc->modules,
@@ -394,17 +394,17 @@ static void fetch_module_versioninfo(LPCWSTR filename, VS_FIXEDFILEINFO* ffi)
  */
 static void add_memory_block(struct dump_context* dc, ULONG64 base, ULONG size, ULONG rva)
 {
-    if (dc->mem)
+    if (!dc->mem)
+    {
+        dc->alloc_mem = 32;
+        dc->mem = HeapAlloc(GetProcessHeap(), 0, dc->alloc_mem * sizeof(*dc->mem));
+    }
+    else if (dc->num_mem >= dc->alloc_mem)
     {
         dc->alloc_mem *= 2;
         dc->mem = HeapReAlloc(GetProcessHeap(), 0, dc->mem,
                               dc->alloc_mem * sizeof(*dc->mem));
     }
-    else
-    {
-        dc->alloc_mem = 32;
-        dc->mem = HeapAlloc(GetProcessHeap(), 0, dc->alloc_mem * sizeof(*dc->mem));
-    }
     if (dc->mem)
     {
         dc->mem[dc->num_mem].base = base;




More information about the wine-cvs mailing list