[PATCH 09/19] dbghelp: expose no children in SymGetTypeInfo() for some SymTag:s
Eric Pouech
eric.pouech at gmail.com
Wed Oct 6 03:01:30 CDT 2021
Signed-off-by: Eric Pouech <eric.pouech at gmail.com>
---
dlls/dbghelp/type.c | 26 ++++++++++++++++++++++----
1 file changed, 22 insertions(+), 4 deletions(-)
diff --git a/dlls/dbghelp/type.c b/dlls/dbghelp/type.c
index fc6ae3f7350..709a4bc851b 100644
--- a/dlls/dbghelp/type.c
+++ b/dlls/dbghelp/type.c
@@ -559,6 +559,17 @@ BOOL symt_get_info(struct module* module, const struct symt* type,
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;
+ case SymTagPointerType:
+ case SymTagArrayType:
+ case SymTagFunctionArgType:
+ case SymTagThunk:
+ case SymTagLabel:
+ case SymTagFuncDebugStart:
+ case SymTagFuncDebugEnd:
+ case SymTagTypedef:
+ case SymTagBaseType:
+ /* for those, CHILDRENCOUNT returns 0 */
+ return tifp->Count == 0;
default:
FIXME("Unsupported sym-tag %s for find-children\n",
symt_get_tag_str(type->tag));
@@ -621,18 +632,25 @@ BOOL symt_get_info(struct module* module, const struct symt* type,
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 */
+ /* some SymTag:s return 0 */
+ case SymTagPointerType:
+ case SymTagArrayType:
+ case SymTagFunctionArgType:
+ case SymTagThunk:
+ case SymTagFuncDebugStart:
+ case SymTagFuncDebugEnd:
+ case SymTagLabel:
+ case SymTagTypedef:
+ case SymTagBaseType:
X(DWORD) = 0;
break;
default:
FIXME("Unsupported sym-tag %s for get-children-count\n",
symt_get_tag_str(type->tag));
/* fall through */
+ /* some others return error */
case SymTagData:
case SymTagPublicSymbol:
- case SymTagBaseType:
return FALSE;
}
break;
More information about the wine-devel
mailing list