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