Commit 750575cc authored by Eric Pouech's avatar Eric Pouech Committed by Alexandre Julliard

dbghelp: Return proper size for local & parameters in SYMBOL_INFO.

parent d3805c30
...@@ -142,7 +142,7 @@ struct symt_data ...@@ -142,7 +142,7 @@ struct symt_data
unsigned long address; /* DataIs{Global, FileStatic} */ unsigned long address; /* DataIs{Global, FileStatic} */
struct struct
{ {
long offset; /* DataIs{Member,Local,Param} in bits*/ long offset; /* DataIs{Member,Local,Param} in bits */
unsigned long length; /* DataIs{Member} in bits */ unsigned long length; /* DataIs{Member} in bits */
unsigned long reg_id; /* DataIs{Local} (0 if frame relative) */ unsigned long reg_id; /* DataIs{Local} (0 if frame relative) */
} s; } s;
......
...@@ -448,7 +448,10 @@ static void symt_fill_sym_info(const struct module* module, ...@@ -448,7 +448,10 @@ static void symt_fill_sym_info(const struct module* module,
if (!symt_get_info(sym, TI_GET_TYPE, &sym_info->TypeIndex)) if (!symt_get_info(sym, TI_GET_TYPE, &sym_info->TypeIndex))
sym_info->TypeIndex = 0; sym_info->TypeIndex = 0;
sym_info->info = (DWORD)sym; sym_info->info = (DWORD)sym;
symt_get_info(sym, TI_GET_LENGTH, &size); if (!symt_get_info(sym, TI_GET_LENGTH, &size) &&
sym_info->TypeIndex &&
!symt_get_info((struct symt*)sym_info->TypeIndex, TI_GET_LENGTH, &size))
size = 0;
sym_info->Size = (DWORD)size; sym_info->Size = (DWORD)size;
sym_info->ModBase = module->module.BaseOfImage; sym_info->ModBase = module->module.BaseOfImage;
sym_info->Flags = 0; sym_info->Flags = 0;
......
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