[PATCH 09/10] [DbgHelp]: ensure the stab_nlist structure is usable on 64bit systems
Eric Pouech
eric.pouech at orange.fr
Sat Oct 9 01:51:41 CDT 2010
A+
---
dlls/dbghelp/stabs.c | 21 ++++++++-------------
1 files changed, 8 insertions(+), 13 deletions(-)
diff --git a/dlls/dbghelp/stabs.c b/dlls/dbghelp/stabs.c
index 837e213..8ef177c 100644
--- a/dlls/dbghelp/stabs.c
+++ b/dlls/dbghelp/stabs.c
@@ -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);
More information about the wine-patches
mailing list