Commit 890e3baa authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

winedbg: Use CRT allocation functions.

parent 674ef559
...@@ -216,8 +216,8 @@ BOOL break_add_break_from_lvalue(const struct dbg_lvalue* lvalue, BOOL swbp) ...@@ -216,8 +216,8 @@ BOOL break_add_break_from_lvalue(const struct dbg_lvalue* lvalue, BOOL swbp)
return FALSE; return FALSE;
} }
dbg_printf("Unable to add breakpoint, will check again any time a new DLL is loaded\n"); dbg_printf("Unable to add breakpoint, will check again any time a new DLL is loaded\n");
new = dbg_heap_realloc(dbg_curr_process->delayed_bp, new = realloc(dbg_curr_process->delayed_bp,
sizeof(struct dbg_delayed_bp) * (dbg_curr_process->num_delayed_bp + 1)); sizeof(struct dbg_delayed_bp) * (dbg_curr_process->num_delayed_bp + 1));
if (!new) return FALSE; if (!new) return FALSE;
dbg_curr_process->delayed_bp = new; dbg_curr_process->delayed_bp = new;
...@@ -260,13 +260,13 @@ void break_add_break_from_id(const char *name, int lineno, BOOL swbp) ...@@ -260,13 +260,13 @@ void break_add_break_from_id(const char *name, int lineno, BOOL swbp)
lineno == dbg_curr_process->delayed_bp[i].u.symbol.lineno) lineno == dbg_curr_process->delayed_bp[i].u.symbol.lineno)
return; return;
} }
new = dbg_heap_realloc(dbg_curr_process->delayed_bp, new = realloc(dbg_curr_process->delayed_bp,
sizeof(struct dbg_delayed_bp) * (dbg_curr_process->num_delayed_bp + 1)); sizeof(struct dbg_delayed_bp) * (dbg_curr_process->num_delayed_bp + 1));
if (!new) return; if (!new) return;
dbg_curr_process->delayed_bp = new; dbg_curr_process->delayed_bp = new;
dbg_curr_process->delayed_bp[dbg_curr_process->num_delayed_bp].is_symbol = TRUE; dbg_curr_process->delayed_bp[dbg_curr_process->num_delayed_bp].is_symbol = TRUE;
dbg_curr_process->delayed_bp[dbg_curr_process->num_delayed_bp].software_bp = swbp; dbg_curr_process->delayed_bp[dbg_curr_process->num_delayed_bp].software_bp = swbp;
dbg_curr_process->delayed_bp[dbg_curr_process->num_delayed_bp].u.symbol.name = strcpy(HeapAlloc(GetProcessHeap(), 0, strlen(name) + 1), name); dbg_curr_process->delayed_bp[dbg_curr_process->num_delayed_bp].u.symbol.name = strdup(name);
dbg_curr_process->delayed_bp[dbg_curr_process->num_delayed_bp].u.symbol.lineno = lineno; dbg_curr_process->delayed_bp[dbg_curr_process->num_delayed_bp].u.symbol.lineno = lineno;
dbg_curr_process->num_delayed_bp++; dbg_curr_process->num_delayed_bp++;
} }
......
...@@ -64,7 +64,6 @@ static WCHAR *get_program_name(HANDLE hProcess) ...@@ -64,7 +64,6 @@ static WCHAR *get_program_name(HANDLE hProcess)
{ {
WCHAR image_name[MAX_PATH]; WCHAR image_name[MAX_PATH];
WCHAR *programname; WCHAR *programname;
WCHAR *output;
/* GetProcessImageFileNameW gives no way to query the correct buffer size, /* GetProcessImageFileNameW gives no way to query the correct buffer size,
* but programs with a path longer than MAX_PATH can't be started by the * but programs with a path longer than MAX_PATH can't be started by the
...@@ -95,10 +94,7 @@ static WCHAR *get_program_name(HANDLE hProcess) ...@@ -95,10 +94,7 @@ static WCHAR *get_program_name(HANDLE hProcess)
programname[MAX_PROGRAM_NAME_LENGTH - 1] = 0; programname[MAX_PROGRAM_NAME_LENGTH - 1] = 0;
} }
output = HeapAlloc(GetProcessHeap(), 0, sizeof(WCHAR)*(lstrlenW(programname) + 1)); return wcsdup(programname);
lstrcpyW(output, programname);
return output;
} }
static LPWSTR g_ProgramName; static LPWSTR g_ProgramName;
...@@ -142,12 +138,12 @@ static void load_crash_log( HANDLE file ) ...@@ -142,12 +138,12 @@ static void load_crash_log( HANDLE file )
{ {
DWORD len, pos = 0, size = 65536; DWORD len, pos = 0, size = 65536;
crash_log = HeapAlloc( GetProcessHeap(), 0, size ); crash_log = malloc( size );
SetFilePointer( file, 0, NULL, FILE_BEGIN ); SetFilePointer( file, 0, NULL, FILE_BEGIN );
while (ReadFile( file, crash_log + pos, size - pos - 1, &len, NULL ) && len) while (ReadFile( file, crash_log + pos, size - pos - 1, &len, NULL ) && len)
{ {
pos += len; pos += len;
if (pos == size - 1) crash_log = HeapReAlloc( GetProcessHeap(), 0, crash_log, size *= 2 ); if (pos == size - 1) crash_log = realloc( crash_log, size *= 2 );
} }
crash_log[pos] = 0; crash_log[pos] = 0;
} }
......
...@@ -499,7 +499,7 @@ static int input_fetch_entire_line(const char* pfx, char** line) ...@@ -499,7 +499,7 @@ static int input_fetch_entire_line(const char* pfx, char** line)
*/ */
WriteFile(dbg_parser.output, pfx, strlen(pfx), &nread, NULL); WriteFile(dbg_parser.output, pfx, strlen(pfx), &nread, NULL);
buffer = HeapAlloc(GetProcessHeap(), 0, alloc = 16); buffer = malloc(alloc = 16);
assert(buffer != NULL); assert(buffer != NULL);
dbg_parser.line_no++; dbg_parser.line_no++;
...@@ -508,7 +508,7 @@ static int input_fetch_entire_line(const char* pfx, char** line) ...@@ -508,7 +508,7 @@ static int input_fetch_entire_line(const char* pfx, char** line)
{ {
if (!ReadFile(dbg_parser.input, &ch, 1, &nread, NULL) || nread == 0) if (!ReadFile(dbg_parser.input, &ch, 1, &nread, NULL) || nread == 0)
{ {
HeapFree(GetProcessHeap(), 0, buffer); free(buffer);
return -1; return -1;
} }
...@@ -516,9 +516,9 @@ static int input_fetch_entire_line(const char* pfx, char** line) ...@@ -516,9 +516,9 @@ static int input_fetch_entire_line(const char* pfx, char** line)
{ {
char* new; char* new;
while (len + 2 > alloc) alloc *= 2; while (len + 2 > alloc) alloc *= 2;
if (!(new = dbg_heap_realloc(buffer, alloc))) if (!(new = realloc(buffer, alloc)))
{ {
HeapFree(GetProcessHeap(), 0, buffer); free(buffer);
return -1; return -1;
} }
buffer = new; buffer = new;
...@@ -557,11 +557,11 @@ size_t input_lex_read_buffer(char* buf, int size) ...@@ -557,11 +557,11 @@ size_t input_lex_read_buffer(char* buf, int size)
if (dbg_parser.last_line && (len == 0 || (len == 1 && tmp[0] == '\n')) && if (dbg_parser.last_line && (len == 0 || (len == 1 && tmp[0] == '\n')) &&
dbg_parser.output != INVALID_HANDLE_VALUE) dbg_parser.output != INVALID_HANDLE_VALUE)
{ {
HeapFree(GetProcessHeap(), 0, tmp); free(tmp);
} }
else else
{ {
HeapFree(GetProcessHeap(), 0, dbg_parser.last_line); free(dbg_parser.last_line);
dbg_parser.last_line = tmp; dbg_parser.last_line = tmp;
} }
} }
...@@ -585,7 +585,7 @@ int input_read_line(const char* pfx, char* buf, int size) ...@@ -585,7 +585,7 @@ int input_read_line(const char* pfx, char* buf, int size)
len = min(size - 1, len); len = min(size - 1, len);
memcpy(buf, line, len); memcpy(buf, line, len);
buf[len] = '\0'; buf[len] = '\0';
HeapFree(GetProcessHeap(), 0, line); free(line);
return 1; return 1;
} }
......
...@@ -42,10 +42,10 @@ char* lexeme_alloc_size(int size) ...@@ -42,10 +42,10 @@ char* lexeme_alloc_size(int size)
if (next_lexeme >= alloc_lexeme) if (next_lexeme >= alloc_lexeme)
{ {
alloc_lexeme += 32; alloc_lexeme += 32;
local_lexemes = dbg_heap_realloc(local_lexemes, alloc_lexeme * sizeof(local_lexemes[0])); local_lexemes = realloc(local_lexemes, alloc_lexeme * sizeof(local_lexemes[0]));
assert(local_lexemes); assert(local_lexemes);
} }
return local_lexemes[next_lexeme++] = HeapAlloc(GetProcessHeap(), 0, size + 1); return local_lexemes[next_lexeme++] = malloc(size + 1);
} }
static char* lexeme_alloc(const char* lexeme) static char* lexeme_alloc(const char* lexeme)
...@@ -68,7 +68,7 @@ static char* lexeme_alloc_if(const char* lexeme, unsigned sz) ...@@ -68,7 +68,7 @@ static char* lexeme_alloc_if(const char* lexeme, unsigned sz)
void lexeme_flush(void) void lexeme_flush(void)
{ {
while (--next_lexeme >= 0) HeapFree(GetProcessHeap(), 0, local_lexemes[next_lexeme]); while (--next_lexeme >= 0) free(local_lexemes[next_lexeme]);
next_lexeme = 0; next_lexeme = 0;
} }
......
...@@ -537,12 +537,6 @@ static inline BOOL dbg_write_memory(void* addr, const void* buffer, size_t len) ...@@ -537,12 +537,6 @@ static inline BOOL dbg_write_memory(void* addr, const void* buffer, size_t len)
return dbg_curr_process->process_io->write(dbg_curr_process->handle, addr, buffer, len, &wlen) && len == wlen; return dbg_curr_process->process_io->write(dbg_curr_process->handle, addr, buffer, len, &wlen) && len == wlen;
} }
static inline void* dbg_heap_realloc(void* buffer, size_t size)
{
return (buffer) ? HeapReAlloc(GetProcessHeap(), 0, buffer, size) :
HeapAlloc(GetProcessHeap(), 0, size);
}
struct data_model struct data_model
{ {
enum dbg_internal_types itype; enum dbg_internal_types itype;
......
...@@ -65,8 +65,8 @@ BOOL display_add(struct expr *exp, int count, char format) ...@@ -65,8 +65,8 @@ BOOL display_add(struct expr *exp, int count, char format)
{ {
struct display *new; struct display *new;
/* no space left - expand */ /* no space left - expand */
new = dbg_heap_realloc(displaypoints, new = realloc(displaypoints,
(maxdisplays + DISPTAB_DELTA) * sizeof(*displaypoints)); (maxdisplays + DISPTAB_DELTA) * sizeof(*displaypoints));
if (!new) return FALSE; if (!new) return FALSE;
displaypoints = new; displaypoints = new;
maxdisplays += DISPTAB_DELTA; maxdisplays += DISPTAB_DELTA;
...@@ -208,8 +208,8 @@ BOOL display_delete(int displaynum) ...@@ -208,8 +208,8 @@ BOOL display_delete(int displaynum)
} }
} }
maxdisplays = DISPTAB_DELTA; maxdisplays = DISPTAB_DELTA;
displaypoints = dbg_heap_realloc(displaypoints, displaypoints = realloc(displaypoints,
(maxdisplays = DISPTAB_DELTA) * sizeof(*displaypoints)); (maxdisplays = DISPTAB_DELTA) * sizeof(*displaypoints));
ndisplays = 0; ndisplays = 0;
} }
else if (displaypoints[--displaynum].exp != NULL) else if (displaypoints[--displaynum].exp != NULL)
...@@ -225,8 +225,8 @@ BOOL display_delete(int displaynum) ...@@ -225,8 +225,8 @@ BOOL display_delete(int displaynum)
{ {
/* MARK */ /* MARK */
maxdisplays = (ndisplays + DISPTAB_DELTA - 1) & ~(DISPTAB_DELTA - 1); maxdisplays = (ndisplays + DISPTAB_DELTA - 1) & ~(DISPTAB_DELTA - 1);
displaypoints = dbg_heap_realloc(displaypoints, displaypoints = realloc(displaypoints,
maxdisplays * sizeof(*displaypoints)); maxdisplays * sizeof(*displaypoints));
} }
} }
return TRUE; return TRUE;
......
...@@ -721,7 +721,7 @@ struct expr* expr_clone(const struct expr* exp, BOOL *local_binding) ...@@ -721,7 +721,7 @@ struct expr* expr_clone(const struct expr* exp, BOOL *local_binding)
int i; int i;
struct expr* rtn; struct expr* rtn;
rtn = HeapAlloc(GetProcessHeap(), 0, sizeof(struct expr)); rtn = malloc(sizeof(struct expr));
/* /*
* First copy the contents of the expression itself. * First copy the contents of the expression itself.
...@@ -734,30 +734,30 @@ struct expr* expr_clone(const struct expr* exp, BOOL *local_binding) ...@@ -734,30 +734,30 @@ struct expr* expr_clone(const struct expr* exp, BOOL *local_binding)
rtn->un.cast.expr = expr_clone(exp->un.cast.expr, local_binding); rtn->un.cast.expr = expr_clone(exp->un.cast.expr, local_binding);
break; break;
case EXPR_TYPE_INTVAR: case EXPR_TYPE_INTVAR:
rtn->un.intvar.name = strcpy(HeapAlloc(GetProcessHeap(), 0, strlen(exp->un.intvar.name) + 1), exp->un.intvar.name); rtn->un.intvar.name = strdup(exp->un.intvar.name);
break; break;
case EXPR_TYPE_U_CONST: case EXPR_TYPE_U_CONST:
case EXPR_TYPE_S_CONST: case EXPR_TYPE_S_CONST:
break; break;
case EXPR_TYPE_STRING: case EXPR_TYPE_STRING:
rtn->un.string.str = strcpy(HeapAlloc(GetProcessHeap(), 0, strlen(exp->un.string.str) + 1), exp->un.string.str); rtn->un.string.str = strdup(exp->un.string.str);
break; break;
case EXPR_TYPE_SYMBOL: case EXPR_TYPE_SYMBOL:
rtn->un.symbol.name = strcpy(HeapAlloc(GetProcessHeap(), 0, strlen(exp->un.symbol.name) + 1), exp->un.symbol.name); rtn->un.symbol.name = strdup(exp->un.symbol.name);
if (local_binding && symbol_is_local(exp->un.symbol.name)) if (local_binding && symbol_is_local(exp->un.symbol.name))
*local_binding = TRUE; *local_binding = TRUE;
break; break;
case EXPR_TYPE_PSTRUCT: case EXPR_TYPE_PSTRUCT:
case EXPR_TYPE_STRUCT: case EXPR_TYPE_STRUCT:
rtn->un.structure.exp1 = expr_clone(exp->un.structure.exp1, local_binding); rtn->un.structure.exp1 = expr_clone(exp->un.structure.exp1, local_binding);
rtn->un.structure.element_name = strcpy(HeapAlloc(GetProcessHeap(), 0, strlen(exp->un.structure.element_name) + 1), exp->un.structure.element_name); rtn->un.structure.element_name = strdup(exp->un.structure.element_name);
break; break;
case EXPR_TYPE_CALL: case EXPR_TYPE_CALL:
for (i = 0; i < exp->un.call.nargs; i++) for (i = 0; i < exp->un.call.nargs; i++)
{ {
rtn->un.call.arg[i] = expr_clone(exp->un.call.arg[i], local_binding); rtn->un.call.arg[i] = expr_clone(exp->un.call.arg[i], local_binding);
} }
rtn->un.call.funcname = strcpy(HeapAlloc(GetProcessHeap(), 0, strlen(exp->un.call.funcname) + 1), exp->un.call.funcname); rtn->un.call.funcname = strdup(exp->un.call.funcname);
break; break;
case EXPR_TYPE_BINOP: case EXPR_TYPE_BINOP:
rtn->un.binop.exp1 = expr_clone(exp->un.binop.exp1, local_binding); rtn->un.binop.exp1 = expr_clone(exp->un.binop.exp1, local_binding);
...@@ -790,28 +790,28 @@ BOOL expr_free(struct expr* exp) ...@@ -790,28 +790,28 @@ BOOL expr_free(struct expr* exp)
expr_free(exp->un.cast.expr); expr_free(exp->un.cast.expr);
break; break;
case EXPR_TYPE_INTVAR: case EXPR_TYPE_INTVAR:
HeapFree(GetProcessHeap(), 0, (char*)exp->un.intvar.name); free((char*)exp->un.intvar.name);
break; break;
case EXPR_TYPE_U_CONST: case EXPR_TYPE_U_CONST:
case EXPR_TYPE_S_CONST: case EXPR_TYPE_S_CONST:
break; break;
case EXPR_TYPE_STRING: case EXPR_TYPE_STRING:
HeapFree(GetProcessHeap(), 0, (char*)exp->un.string.str); free((char*)exp->un.string.str);
break; break;
case EXPR_TYPE_SYMBOL: case EXPR_TYPE_SYMBOL:
HeapFree(GetProcessHeap(), 0, (char*)exp->un.symbol.name); free((char*)exp->un.symbol.name);
break; break;
case EXPR_TYPE_PSTRUCT: case EXPR_TYPE_PSTRUCT:
case EXPR_TYPE_STRUCT: case EXPR_TYPE_STRUCT:
expr_free(exp->un.structure.exp1); expr_free(exp->un.structure.exp1);
HeapFree(GetProcessHeap(), 0, (char*)exp->un.structure.element_name); free((char*)exp->un.structure.element_name);
break; break;
case EXPR_TYPE_CALL: case EXPR_TYPE_CALL:
for (i = 0; i < exp->un.call.nargs; i++) for (i = 0; i < exp->un.call.nargs; i++)
{ {
expr_free(exp->un.call.arg[i]); expr_free(exp->un.call.arg[i]);
} }
HeapFree(GetProcessHeap(), 0, (char*)exp->un.call.funcname); free((char*)exp->un.call.funcname);
break; break;
case EXPR_TYPE_BINOP: case EXPR_TYPE_BINOP:
expr_free(exp->un.binop.exp1); expr_free(exp->un.binop.exp1);
...@@ -826,6 +826,6 @@ BOOL expr_free(struct expr* exp) ...@@ -826,6 +826,6 @@ BOOL expr_free(struct expr* exp)
break; break;
} }
HeapFree(GetProcessHeap(), 0, exp); free(exp);
return TRUE; return TRUE;
} }
...@@ -129,7 +129,7 @@ static void gdbctx_delete_xpoint(struct gdb_context *gdbctx, struct dbg_thread * ...@@ -129,7 +129,7 @@ static void gdbctx_delete_xpoint(struct gdb_context *gdbctx, struct dbg_thread *
ERR("%04lx:%04lx: Couldn't remove breakpoint at:%p/%x type:%d\n", process->pid, thread ? thread->tid : ~0, x->addr, x->size, x->type); ERR("%04lx:%04lx: Couldn't remove breakpoint at:%p/%x type:%d\n", process->pid, thread ? thread->tid : ~0, x->addr, x->size, x->type);
list_remove(&x->entry); list_remove(&x->entry);
HeapFree(GetProcessHeap(), 0, x); free(x);
} }
static void gdbctx_insert_xpoint(struct gdb_context *gdbctx, struct dbg_thread *thread, static void gdbctx_insert_xpoint(struct gdb_context *gdbctx, struct dbg_thread *thread,
...@@ -146,7 +146,7 @@ static void gdbctx_insert_xpoint(struct gdb_context *gdbctx, struct dbg_thread * ...@@ -146,7 +146,7 @@ static void gdbctx_insert_xpoint(struct gdb_context *gdbctx, struct dbg_thread *
return; return;
} }
if (!(x = HeapAlloc(GetProcessHeap(), 0, sizeof(struct gdb_xpoint)))) if (!(x = malloc(sizeof(struct gdb_xpoint))))
{ {
ERR("%04lx:%04lx: Couldn't allocate memory for breakpoint at:%p/%x type:%d\n", process->pid, thread->tid, addr, size, type); ERR("%04lx:%04lx: Couldn't allocate memory for breakpoint at:%p/%x type:%d\n", process->pid, thread->tid, addr, size, type);
return; return;
......
...@@ -199,7 +199,7 @@ static BOOL CALLBACK info_mod_cb(PCSTR mod_name, DWORD64 base, PVOID ctx) ...@@ -199,7 +199,7 @@ static BOOL CALLBACK info_mod_cb(PCSTR mod_name, DWORD64 base, PVOID ctx)
if (im->num_used + 1 > im->num_alloc) if (im->num_used + 1 > im->num_alloc)
{ {
struct info_module* new = dbg_heap_realloc(im->modules, (im->num_alloc + 16) * sizeof(*im->modules)); struct info_module* new = realloc(im->modules, (im->num_alloc + 16) * sizeof(*im->modules));
if (!new) return FALSE; /* stop enumeration in case of OOM */ if (!new) return FALSE; /* stop enumeration in case of OOM */
im->num_alloc += 16; im->num_alloc += 16;
im->modules = new; im->modules = new;
...@@ -283,7 +283,7 @@ void info_win32_module(DWORD64 base) ...@@ -283,7 +283,7 @@ void info_win32_module(DWORD64 base)
} }
num_printed++; num_printed++;
} }
HeapFree(GetProcessHeap(), 0, im.modules); free(im.modules);
if (base && !num_printed) if (base && !num_printed)
dbg_printf("'0x%0*I64x' is not a valid module address\n", ADDRWIDTH, base); dbg_printf("'0x%0*I64x' is not a valid module address\n", ADDRWIDTH, base);
...@@ -317,7 +317,7 @@ static void class_walker(HWND hWnd, struct class_walker* cw) ...@@ -317,7 +317,7 @@ static void class_walker(HWND hWnd, struct class_walker* cw)
{ {
if (cw->used >= cw->alloc) if (cw->used >= cw->alloc)
{ {
ATOM* new = dbg_heap_realloc(cw->table, (cw->alloc + 16) * sizeof(ATOM)); ATOM* new = realloc(cw->table, (cw->alloc + 16) * sizeof(ATOM));
if (!new) return; if (!new) return;
cw->alloc += 16; cw->alloc += 16;
cw->table = new; cw->table = new;
...@@ -344,7 +344,7 @@ void info_win32_class(HWND hWnd, const char* name) ...@@ -344,7 +344,7 @@ void info_win32_class(HWND hWnd, const char* name)
cw.table = NULL; cw.table = NULL;
cw.used = cw.alloc = 0; cw.used = cw.alloc = 0;
class_walker(GetDesktopWindow(), &cw); class_walker(GetDesktopWindow(), &cw);
HeapFree(GetProcessHeap(), 0, cw.table); free(cw.table);
return; return;
} }
...@@ -536,7 +536,7 @@ void info_win32_processes(void) ...@@ -536,7 +536,7 @@ void info_win32_processes(void)
dp.count = 0; dp.count = 0;
dp.alloc = 16; dp.alloc = 16;
dp.entries = HeapAlloc(GetProcessHeap(), 0, sizeof(*dp.entries) * dp.alloc); dp.entries = malloc(sizeof(*dp.entries) * dp.alloc);
if (!dp.entries) if (!dp.entries)
{ {
CloseHandle(snap); CloseHandle(snap);
...@@ -551,11 +551,11 @@ void info_win32_processes(void) ...@@ -551,11 +551,11 @@ void info_win32_processes(void)
dp.entries[dp.count++].children = -1; dp.entries[dp.count++].children = -1;
if (dp.count >= dp.alloc) if (dp.count >= dp.alloc)
{ {
struct dump_proc_entry* new = HeapReAlloc(GetProcessHeap(), 0, dp.entries, sizeof(*dp.entries) * (dp.alloc * 2)); struct dump_proc_entry* new = realloc(dp.entries, sizeof(*dp.entries) * (dp.alloc * 2));
if (!new) if (!new)
{ {
CloseHandle(snap); CloseHandle(snap);
HeapFree(GetProcessHeap(), 0, dp.entries); free(dp.entries);
return; return;
} }
dp.alloc *= 2; dp.alloc *= 2;
...@@ -575,7 +575,7 @@ void info_win32_processes(void) ...@@ -575,7 +575,7 @@ void info_win32_processes(void)
} }
dbg_printf(" %-8.8s %-8.8s %s (all id:s are in hex)\n", "pid", "threads", "executable"); dbg_printf(" %-8.8s %-8.8s %s (all id:s are in hex)\n", "pid", "threads", "executable");
dump_proc_info(&dp, first, 0); dump_proc_info(&dp, first, 0);
HeapFree(GetProcessHeap(), 0, dp.entries); free(dp.entries);
} }
} }
......
...@@ -386,11 +386,11 @@ BOOL memory_get_string(struct dbg_process* pcs, void* addr, BOOL in_debuggee, ...@@ -386,11 +386,11 @@ BOOL memory_get_string(struct dbg_process* pcs, void* addr, BOOL in_debuggee,
if (!unicode) ret = pcs->process_io->read(pcs->handle, addr, buffer, size, &sz); if (!unicode) ret = pcs->process_io->read(pcs->handle, addr, buffer, size, &sz);
else else
{ {
buffW = HeapAlloc(GetProcessHeap(), 0, size * sizeof(WCHAR)); buffW = malloc(size * sizeof(WCHAR));
ret = pcs->process_io->read(pcs->handle, addr, buffW, size * sizeof(WCHAR), &sz); ret = pcs->process_io->read(pcs->handle, addr, buffW, size * sizeof(WCHAR), &sz);
WideCharToMultiByte(CP_ACP, 0, buffW, sz / sizeof(WCHAR), buffer, size, WideCharToMultiByte(CP_ACP, 0, buffW, sz / sizeof(WCHAR), buffer, size,
NULL, NULL); NULL, NULL);
HeapFree(GetProcessHeap(), 0, buffW); free(buffW);
} }
if (size) buffer[size-1] = 0; if (size) buffer[size-1] = 0;
return ret; return ret;
...@@ -418,11 +418,11 @@ BOOL memory_get_string_indirect(struct dbg_process* pcs, void* addr, BOOL unicod ...@@ -418,11 +418,11 @@ BOOL memory_get_string_indirect(struct dbg_process* pcs, void* addr, BOOL unicod
ret = pcs->process_io->read(pcs->handle, ad, buffer, size * sizeof(WCHAR), &sz) && sz != 0; ret = pcs->process_io->read(pcs->handle, ad, buffer, size * sizeof(WCHAR), &sz) && sz != 0;
else else
{ {
if ((buff = HeapAlloc(GetProcessHeap(), 0, size))) if ((buff = malloc(size)))
{ {
ret = pcs->process_io->read(pcs->handle, ad, buff, size, &sz) && sz != 0; ret = pcs->process_io->read(pcs->handle, ad, buff, size, &sz) && sz != 0;
MultiByteToWideChar(CP_ACP, 0, buff, sz, buffer, size); MultiByteToWideChar(CP_ACP, 0, buff, sz, buffer, size);
HeapFree(GetProcessHeap(), 0, buff); free(buff);
} }
else ret = FALSE; else ret = FALSE;
} }
......
...@@ -59,14 +59,14 @@ void source_add_path(const char* path) ...@@ -59,14 +59,14 @@ void source_add_path(const char* path)
if (dbg_curr_process->search_path) if (dbg_curr_process->search_path)
{ {
unsigned pos = strlen(dbg_curr_process->search_path) + 1; unsigned pos = strlen(dbg_curr_process->search_path) + 1;
new = HeapReAlloc(GetProcessHeap(), 0, dbg_curr_process->search_path, pos + size); new = realloc(dbg_curr_process->search_path, pos + size);
if (!new) return; if (!new) return;
new[pos - 1] = ';'; new[pos - 1] = ';';
strcpy(&new[pos], path); strcpy(&new[pos], path);
} }
else else
{ {
new = HeapAlloc(GetProcessHeap(), 0, size); new = malloc(size);
if (!new) return; if (!new) return;
strcpy(new, path); strcpy(new, path);
} }
...@@ -75,7 +75,7 @@ void source_add_path(const char* path) ...@@ -75,7 +75,7 @@ void source_add_path(const char* path)
void source_nuke_path(struct dbg_process* p) void source_nuke_path(struct dbg_process* p)
{ {
HeapFree(GetProcessHeap(), 0, p->search_path); free(p->search_path);
p->search_path = NULL; p->search_path = NULL;
} }
...@@ -146,7 +146,7 @@ static struct open_file_list* source_add_file(const char* name, const char* real ...@@ -146,7 +146,7 @@ static struct open_file_list* source_add_file(const char* name, const char* real
sz = sizeof(*ol); sz = sizeof(*ol);
nlen = strlen(name) + 1; nlen = strlen(name) + 1;
if (realpath) sz += strlen(realpath) + 1; if (realpath) sz += strlen(realpath) + 1;
ol = HeapAlloc(GetProcessHeap(), 0, sz + nlen); ol = malloc(sz + nlen);
if (!ol) return NULL; if (!ol) return NULL;
strcpy(ol->path = (char*)(ol + 1), name); strcpy(ol->path = (char*)(ol + 1), name);
if (realpath) if (realpath)
...@@ -255,7 +255,7 @@ static int source_display(const char* sourcefile, int start, int end) ...@@ -255,7 +255,7 @@ static int source_display(const char* sourcefile, int start, int end)
} }
ol->nlines++; ol->nlines++;
ol->linelist = HeapAlloc(GetProcessHeap(), 0, ol->nlines * sizeof(unsigned int)); ol->linelist = malloc(ol->nlines * sizeof(unsigned int));
nlines = 0; nlines = 0;
pnt = addr; pnt = addr;
...@@ -379,7 +379,7 @@ void source_free_files(struct dbg_process* p) ...@@ -379,7 +379,7 @@ void source_free_files(struct dbg_process* p)
for (ofile = p->source_ofiles; ofile; ofile = ofile_next) for (ofile = p->source_ofiles; ofile; ofile = ofile_next)
{ {
ofile_next = ofile->next; ofile_next = ofile->next;
HeapFree(GetProcessHeap(), 0, ofile->linelist); free(ofile->linelist);
HeapFree(GetProcessHeap(), 0, ofile); free(ofile);
} }
} }
...@@ -182,7 +182,7 @@ unsigned stack_fetch_frames(const dbg_ctx_t* _ctx) ...@@ -182,7 +182,7 @@ unsigned stack_fetch_frames(const dbg_ctx_t* _ctx)
dbg_ctx_t ctx = *_ctx; dbg_ctx_t ctx = *_ctx;
BOOL ret; BOOL ret;
HeapFree(GetProcessHeap(), 0, dbg_curr_thread->frames); free(dbg_curr_thread->frames);
dbg_curr_thread->frames = NULL; dbg_curr_thread->frames = NULL;
memset(&sf, 0, sizeof(sf)); memset(&sf, 0, sizeof(sf));
...@@ -204,8 +204,8 @@ unsigned stack_fetch_frames(const dbg_ctx_t* _ctx) ...@@ -204,8 +204,8 @@ unsigned stack_fetch_frames(const dbg_ctx_t* _ctx)
SymFunctionTableAccess64, SymGetModuleBase64, NULL, SYM_STKWALK_DEFAULT)) || SymFunctionTableAccess64, SymGetModuleBase64, NULL, SYM_STKWALK_DEFAULT)) ||
nf == 0) /* we always register first frame information */ nf == 0) /* we always register first frame information */
{ {
struct dbg_frame* new = dbg_heap_realloc(dbg_curr_thread->frames, struct dbg_frame* new = realloc(dbg_curr_thread->frames,
(nf + 1) * sizeof(dbg_curr_thread->frames[0])); (nf + 1) * sizeof(dbg_curr_thread->frames[0]));
if (!new) break; if (!new) break;
dbg_curr_thread->frames = new; dbg_curr_thread->frames = new;
......
...@@ -197,10 +197,10 @@ static BOOL dbg_exception_prolog(BOOL is_debug, const EXCEPTION_RECORD* rec) ...@@ -197,10 +197,10 @@ static BOOL dbg_exception_prolog(BOOL is_debug, const EXCEPTION_RECORD* rec)
if ((!last_name || strcmp(last_name, si->Name)) || if ((!last_name || strcmp(last_name, si->Name)) ||
(!last_file || strcmp(last_file, il.FileName))) (!last_file || strcmp(last_file, il.FileName)))
{ {
HeapFree(GetProcessHeap(), 0, last_name); free(last_name);
HeapFree(GetProcessHeap(), 0, last_file); free(last_file);
last_name = strcpy(HeapAlloc(GetProcessHeap(), 0, strlen(si->Name) + 1), si->Name); last_name = strdup(si->Name);
last_file = strcpy(HeapAlloc(GetProcessHeap(), 0, strlen(il.FileName) + 1), il.FileName); last_file = strdup(il.FileName);
dbg_printf("%s () at %s:%lu\n", last_name, last_file, il.LineNumber); dbg_printf("%s () at %s:%lu\n", last_name, last_file, il.LineNumber);
} }
} }
......
...@@ -497,7 +497,7 @@ static void cleanup(struct tgt_process_minidump_data* data) ...@@ -497,7 +497,7 @@ static void cleanup(struct tgt_process_minidump_data* data)
if (data->mapping) UnmapViewOfFile(data->mapping); if (data->mapping) UnmapViewOfFile(data->mapping);
if (data->hMap) CloseHandle(data->hMap); if (data->hMap) CloseHandle(data->hMap);
if (data->hFile != INVALID_HANDLE_VALUE) CloseHandle(data->hFile); if (data->hFile != INVALID_HANDLE_VALUE) CloseHandle(data->hFile);
HeapFree(GetProcessHeap(), 0, data); free(data);
} }
static struct be_process_io be_process_minidump_io; static struct be_process_io be_process_minidump_io;
...@@ -512,7 +512,7 @@ enum dbg_start minidump_reload(int argc, char* argv[]) ...@@ -512,7 +512,7 @@ enum dbg_start minidump_reload(int argc, char* argv[])
WINE_TRACE("Processing Minidump file %s\n", argv[0]); WINE_TRACE("Processing Minidump file %s\n", argv[0]);
data = HeapAlloc(GetProcessHeap(), 0, sizeof(struct tgt_process_minidump_data)); data = malloc(sizeof(struct tgt_process_minidump_data));
if (!data) return start_error_init; if (!data) return start_error_init;
data->mapping = NULL; data->mapping = NULL;
data->hMap = NULL; data->hMap = NULL;
......
...@@ -55,7 +55,7 @@ enum dbg_start tgt_module_load(const char* name, BOOL keep) ...@@ -55,7 +55,7 @@ enum dbg_start tgt_module_load(const char* name, BOOL keep)
if (!dbg_init(hDummy, NULL, FALSE)) if (!dbg_init(hDummy, NULL, FALSE))
return start_error_init; return start_error_init;
len = MultiByteToWideChar(CP_ACP, 0, name, -1, NULL, 0); len = MultiByteToWideChar(CP_ACP, 0, name, -1, NULL, 0);
nameW = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR)); nameW = malloc(len * sizeof(WCHAR));
if (!nameW) if (!nameW)
{ {
ret = start_error_init; ret = start_error_init;
...@@ -69,7 +69,7 @@ enum dbg_start tgt_module_load(const char* name, BOOL keep) ...@@ -69,7 +69,7 @@ enum dbg_start tgt_module_load(const char* name, BOOL keep)
ret = start_error_init; ret = start_error_init;
keep = FALSE; keep = FALSE;
} }
HeapFree(GetProcessHeap(), 0, nameW); free(nameW);
} }
if (keep) if (keep)
......
...@@ -266,7 +266,7 @@ struct dbg_process* dbg_add_process(const struct be_process_io* pio, DWORD pid, ...@@ -266,7 +266,7 @@ struct dbg_process* dbg_add_process(const struct be_process_io* pio, DWORD pid,
if (!h) if (!h)
h = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid); h = OpenProcess(PROCESS_ALL_ACCESS, FALSE, pid);
if (!(p = HeapAlloc(GetProcessHeap(), 0, sizeof(struct dbg_process)))) return NULL; if (!(p = malloc(sizeof(struct dbg_process)))) return NULL;
p->handle = h; p->handle = h;
p->pid = pid; p->pid = pid;
p->process_io = pio; p->process_io = pio;
...@@ -307,11 +307,7 @@ struct dbg_process* dbg_add_process(const struct be_process_io* pio, DWORD pid, ...@@ -307,11 +307,7 @@ struct dbg_process* dbg_add_process(const struct be_process_io* pio, DWORD pid,
void dbg_set_process_name(struct dbg_process* p, const WCHAR* imageName) void dbg_set_process_name(struct dbg_process* p, const WCHAR* imageName)
{ {
assert(p->imageName == NULL); assert(p->imageName == NULL);
if (imageName) if (imageName) p->imageName = wcsdup(imageName);
{
WCHAR* tmp = HeapAlloc(GetProcessHeap(), 0, (lstrlenW(imageName) + 1) * sizeof(WCHAR));
if (tmp) p->imageName = lstrcpyW(tmp, imageName);
}
} }
void dbg_del_process(struct dbg_process* p) void dbg_del_process(struct dbg_process* p)
...@@ -325,16 +321,16 @@ void dbg_del_process(struct dbg_process* p) ...@@ -325,16 +321,16 @@ void dbg_del_process(struct dbg_process* p)
for (i = 0; i < p->num_delayed_bp; i++) for (i = 0; i < p->num_delayed_bp; i++)
if (p->delayed_bp[i].is_symbol) if (p->delayed_bp[i].is_symbol)
HeapFree(GetProcessHeap(), 0, p->delayed_bp[i].u.symbol.name); free(p->delayed_bp[i].u.symbol.name);
HeapFree(GetProcessHeap(), 0, p->delayed_bp); free(p->delayed_bp);
source_nuke_path(p); source_nuke_path(p);
source_free_files(p); source_free_files(p);
list_remove(&p->entry); list_remove(&p->entry);
if (p == dbg_curr_process) dbg_curr_process = NULL; if (p == dbg_curr_process) dbg_curr_process = NULL;
if (p->event_on_first_exception) CloseHandle(p->event_on_first_exception); if (p->event_on_first_exception) CloseHandle(p->event_on_first_exception);
HeapFree(GetProcessHeap(), 0, (char*)p->imageName); free((char*)p->imageName);
HeapFree(GetProcessHeap(), 0, p); free(p);
} }
/****************************************************************** /******************************************************************
...@@ -357,7 +353,7 @@ BOOL dbg_init(HANDLE hProc, const WCHAR* in, BOOL invade) ...@@ -357,7 +353,7 @@ BOOL dbg_init(HANDLE hProc, const WCHAR* in, BOOL invade)
if (*last == '/' || *last == '\\') if (*last == '/' || *last == '\\')
{ {
WCHAR* tmp; WCHAR* tmp;
tmp = HeapAlloc(GetProcessHeap(), 0, (1024 + 1 + (last - in) + 1) * sizeof(WCHAR)); tmp = malloc((1024 + 1 + (last - in) + 1) * sizeof(WCHAR));
if (tmp && SymGetSearchPathW(hProc, tmp, 1024)) if (tmp && SymGetSearchPathW(hProc, tmp, 1024))
{ {
WCHAR* x = tmp + lstrlenW(tmp); WCHAR* x = tmp + lstrlenW(tmp);
...@@ -368,7 +364,7 @@ BOOL dbg_init(HANDLE hProc, const WCHAR* in, BOOL invade) ...@@ -368,7 +364,7 @@ BOOL dbg_init(HANDLE hProc, const WCHAR* in, BOOL invade)
ret = SymSetSearchPathW(hProc, tmp); ret = SymSetSearchPathW(hProc, tmp);
} }
else ret = FALSE; else ret = FALSE;
HeapFree(GetProcessHeap(), 0, tmp); free(tmp);
break; break;
} }
} }
...@@ -402,7 +398,7 @@ struct dbg_thread* dbg_get_thread(struct dbg_process* p, DWORD tid) ...@@ -402,7 +398,7 @@ struct dbg_thread* dbg_get_thread(struct dbg_process* p, DWORD tid)
struct dbg_thread* dbg_add_thread(struct dbg_process* p, DWORD tid, struct dbg_thread* dbg_add_thread(struct dbg_process* p, DWORD tid,
HANDLE h, void* teb) HANDLE h, void* teb)
{ {
struct dbg_thread* t = HeapAlloc(GetProcessHeap(), 0, sizeof(struct dbg_thread)); struct dbg_thread* t = malloc(sizeof(struct dbg_thread));
if (!t) if (!t)
return NULL; return NULL;
...@@ -431,10 +427,10 @@ struct dbg_thread* dbg_add_thread(struct dbg_process* p, DWORD tid, ...@@ -431,10 +427,10 @@ struct dbg_thread* dbg_add_thread(struct dbg_process* p, DWORD tid,
void dbg_del_thread(struct dbg_thread* t) void dbg_del_thread(struct dbg_thread* t)
{ {
HeapFree(GetProcessHeap(), 0, t->frames); free(t->frames);
list_remove(&t->entry); list_remove(&t->entry);
if (t == dbg_curr_thread) dbg_curr_thread = NULL; if (t == dbg_curr_thread) dbg_curr_thread = NULL;
HeapFree(GetProcessHeap(), 0, t); free(t);
} }
void dbg_set_option(const char* option, const char* val) void dbg_set_option(const char* option, const char* val)
......
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