Module: wine Branch: master Commit: 43a35958f698871ff01573b61030d80d0097e008 URL: http://source.winehq.org/git/wine.git/?a=commit;h=43a35958f698871ff01573b610...
Author: Jesse Litton wine@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;