Commit 43a35958 authored by Jesse Litton's avatar Jesse Litton Committed by Alexandre Julliard

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

parent d9784c1a
...@@ -260,7 +260,7 @@ static BOOL add_module(struct dump_context* dc, const WCHAR* name, ...@@ -260,7 +260,7 @@ static BOOL add_module(struct dump_context* dc, const WCHAR* name,
dc->modules = HeapAlloc(GetProcessHeap(), 0, dc->modules = HeapAlloc(GetProcessHeap(), 0,
dc->alloc_modules * sizeof(*dc->modules)); dc->alloc_modules * sizeof(*dc->modules));
} }
else else if(dc->num_modules >= dc->alloc_modules)
{ {
dc->alloc_modules *= 2; dc->alloc_modules *= 2;
dc->modules = HeapReAlloc(GetProcessHeap(), 0, dc->modules, dc->modules = HeapReAlloc(GetProcessHeap(), 0, dc->modules,
...@@ -394,17 +394,17 @@ static void fetch_module_versioninfo(LPCWSTR filename, VS_FIXEDFILEINFO* ffi) ...@@ -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) 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->alloc_mem *= 2;
dc->mem = HeapReAlloc(GetProcessHeap(), 0, dc->mem, dc->mem = HeapReAlloc(GetProcessHeap(), 0, dc->mem,
dc->alloc_mem * sizeof(*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) if (dc->mem)
{ {
dc->mem[dc->num_mem].base = base; dc->mem[dc->num_mem].base = base;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment