Added a possibility to let the internal debugger use a separate
heap. Not enabled by default, change #if in include/debugger.h to use
this (the heap allocator is very slow).
diff --git a/debugger/hash.c b/debugger/hash.c
index 1361d1c..87dee7a 100644
--- a/debugger/hash.c
+++ b/debugger/hash.c
@@ -17,7 +17,6 @@
#include "selectors.h"
#include "debugger.h"
#include "toolhelp.h"
-#include "xmalloc.h"
#define NR_NAME_HASH 16384
#ifndef PATH_MAX
@@ -154,7 +153,7 @@
return;
}
- addr_sorttab = (struct name_hash **) xrealloc(addr_sorttab,
+ addr_sorttab = (struct name_hash **) DBG_realloc(addr_sorttab,
nsym * sizeof(struct name_hash *));
nsym = 0;
@@ -215,9 +214,9 @@
* return it, so we don't end up with duplicates.
*/
- new = (struct name_hash *) xmalloc(sizeof(struct name_hash));
+ new = (struct name_hash *) DBG_alloc(sizeof(struct name_hash));
new->addr = *addr;
- new->name = xstrdup(name);
+ new->name = DBG_strdup(name);
if( source != NULL )
{
@@ -233,7 +232,7 @@
else
{
strcpy(prev_source, source);
- prev_duped_source = new->sourcefile = xstrdup(source);
+ prev_duped_source = new->sourcefile = DBG_strdup(source);
}
}
else
@@ -301,14 +300,14 @@
if( nh->n_locals != nh->locals_alloc )
{
nh->locals_alloc = nh->n_locals;
- nh->local_vars = xrealloc(nh->local_vars,
+ nh->local_vars = DBG_realloc(nh->local_vars,
nh->locals_alloc * sizeof(WineLocals));
}
if( nh->n_lines != nh->lines_alloc )
{
nh->lines_alloc = nh->n_lines;
- nh->linetab = xrealloc(nh->linetab,
+ nh->linetab = DBG_realloc(nh->linetab,
nh->lines_alloc * sizeof(WineLineNo));
}
@@ -928,7 +927,7 @@
if( func->n_lines + 1 >= func->lines_alloc )
{
func->lines_alloc += 64;
- func->linetab = xrealloc(func->linetab,
+ func->linetab = DBG_realloc(func->linetab,
func->lines_alloc * sizeof(WineLineNo));
}
@@ -955,7 +954,7 @@
if( func->n_locals + 1 >= func->locals_alloc )
{
func->locals_alloc += 32;
- func->local_vars = xrealloc(func->local_vars,
+ func->local_vars = DBG_realloc(func->local_vars,
func->locals_alloc * sizeof(WineLocals));
}
@@ -963,7 +962,7 @@
func->local_vars[func->n_locals].offset = offset;
func->local_vars[func->n_locals].pc_start = pc_start;
func->local_vars[func->n_locals].pc_end = pc_end;
- func->local_vars[func->n_locals].name = xstrdup(name);
+ func->local_vars[func->n_locals].name = DBG_strdup(name);
func->local_vars[func->n_locals].type = NULL;
func->n_locals++;