- report address and size - allow enumerating children
Signed-off-by: Eric Pouech eric.pouech@gmail.com
--- dlls/dbghelp/type.c | 10 ++++++++++ 1 file changed, 10 insertions(+)
diff --git a/dlls/dbghelp/type.c b/dlls/dbghelp/type.c index 4eb230e2755..67e2f233c40 100644 --- a/dlls/dbghelp/type.c +++ b/dlls/dbghelp/type.c @@ -141,6 +141,9 @@ BOOL symt_get_address(const struct symt* type, ULONG64* addr) default: return FALSE; } break; + case SymTagBlock: + *addr = ((const struct symt_block*)type)->address; + break; case SymTagFunction: *addr = ((const struct symt_function*)type)->address; break; @@ -554,6 +557,7 @@ BOOL symt_get_info(struct module* module, const struct symt* type, case SymTagEnum: v = &((const struct symt_enum*)type)->vchildren; break; case SymTagFunctionType: v = &((const struct symt_function_signature*)type)->vchildren; break; case SymTagFunction: v = &((const struct symt_function*)type)->vchildren; break; + case SymTagBlock: v = &((const struct symt_block*)type)->vchildren; break; default: FIXME("Unsupported sym-tag %s for find-children\n", symt_get_tag_str(type->tag)); @@ -613,6 +617,9 @@ BOOL symt_get_info(struct module* module, const struct symt* type, case SymTagFunction: X(DWORD) = vector_length(&((const struct symt_function*)type)->vchildren); break; + case SymTagBlock: + X(DWORD) = vector_length(&((const struct symt_block*)type)->vchildren); + break; case SymTagPointerType: /* MS does it that way */ case SymTagArrayType: /* MS does it that way */ case SymTagThunk: /* MS does it that way */ @@ -659,6 +666,9 @@ BOOL symt_get_info(struct module* module, const struct symt* type, case SymTagFunction: X(DWORD64) = ((const struct symt_function*)type)->size; break; + case SymTagBlock: + X(DWORD64) = ((const struct symt_block*)type)->size; + break; case SymTagPointerType: X(DWORD64) = ((const struct symt_pointer*)type)->size; break;