Don't double memory allocation on every call.

Jesse Litton wine at eternaldusk.com
Fri Aug 14 23:25:59 CDT 2009


Only allocate memory when previous pool is exhausted.
---
 dlls/dbghelp/minidump.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/dlls/dbghelp/minidump.c b/dlls/dbghelp/minidump.c
index 4108ef4..46ff4a6 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,7 +394,7 @@ 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->num_mem >= dc->alloc_mem))
     {
         dc->alloc_mem *= 2;
         dc->mem = HeapReAlloc(GetProcessHeap(), 0, dc->mem,
-- 
1.6.3.3


--------------070903020101080409060100--



More information about the wine-patches mailing list