Commit fac5abc5 authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

dbghelp: Ensure the stab_nlist structure is usable on 64bit systems.

parent 854379bb
......@@ -110,16 +110,11 @@ WINE_DEFAULT_DEBUG_CHANNEL(dbghelp_stabs);
struct stab_nlist
{
union
{
char* n_name;
struct stab_nlist* n_next;
long n_strx;
} n_un;
unsigned n_strx;
unsigned char n_type;
char n_other;
short n_desc;
unsigned long n_value;
unsigned n_value;
};
static void stab_strcpy(char* dest, int sz, const char* source)
......@@ -1315,7 +1310,7 @@ BOOL stabs_parse(struct module* module, unsigned long load_offset,
stabbuff[0] = '\0';
for (i = 0; i < nstab; i++, stab_ptr++)
{
ptr = strs + stab_ptr->n_un.n_strx;
ptr = strs + stab_ptr->n_strx;
if ((ptr > strs_end) || (ptr + strlen(ptr) > strs_end))
{
WARN("Bad stabs string %p\n", ptr);
......@@ -1421,7 +1416,7 @@ BOOL stabs_parse(struct module* module, unsigned long load_offset,
loc.reg = 0; /* FIXME */
loc.offset = stab_ptr->n_value;
symt_add_func_local(module, curr_func,
(long)stab_ptr->n_value >= 0 ? DataIsParam : DataIsLocal,
(int)stab_ptr->n_value >= 0 ? DataIsParam : DataIsLocal,
&loc, NULL, param_type, symname);
symt_add_function_signature_parameter(module,
(struct symt_function_signature*)curr_func->type,
......@@ -1471,7 +1466,7 @@ BOOL stabs_parse(struct module* module, unsigned long load_offset,
case 35:
case 36: loc.reg = CV_REG_MM0 + stab_ptr->n_value - 29; break;
default:
FIXME("Unknown register value (%lu)\n", stab_ptr->n_value);
FIXME("Unknown register value (%u)\n", stab_ptr->n_value);
loc.reg = CV_REG_NONE;
break;
}
......@@ -1617,7 +1612,7 @@ BOOL stabs_parse(struct module* module, unsigned long load_offset,
case N_EXCL:
if (stabs_add_include(stabs_find_include(ptr, stab_ptr->n_value)) < 0)
{
ERR("Excluded header not found (%s,%ld)\n", ptr, stab_ptr->n_value);
ERR("Excluded header not found (%s,%d)\n", ptr, stab_ptr->n_value);
module_reset_debug_info(module);
ret = FALSE;
goto done;
......@@ -1663,8 +1658,8 @@ BOOL stabs_parse(struct module* module, unsigned long load_offset,
break;
}
stabbuff[0] = '\0';
TRACE("0x%02x %lx %s\n",
stab_ptr->n_type, stab_ptr->n_value, debugstr_a(strs + stab_ptr->n_un.n_strx));
TRACE("0x%02x %x %s\n",
stab_ptr->n_type, stab_ptr->n_value, debugstr_a(strs + stab_ptr->n_strx));
}
module->module.SymType = SymDia;
module->module.CVSig = 'S' | ('T' << 8) | ('A' << 16) | ('B' << 24);
......
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