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

dbghelp: Expose no children in SymGetTypeInfo() for some SymTags.

parent dbcc714c
...@@ -559,6 +559,17 @@ BOOL symt_get_info(struct module* module, const struct symt* type, ...@@ -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 SymTagFunctionType: v = &((const struct symt_function_signature*)type)->vchildren; break;
case SymTagFunction: v = &((const struct symt_function*)type)->vchildren; break; case SymTagFunction: v = &((const struct symt_function*)type)->vchildren; break;
case SymTagBlock: v = &((const struct symt_block*)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: default:
FIXME("Unsupported sym-tag %s for find-children\n", FIXME("Unsupported sym-tag %s for find-children\n",
symt_get_tag_str(type->tag)); symt_get_tag_str(type->tag));
...@@ -621,18 +632,25 @@ BOOL symt_get_info(struct module* module, const struct symt* type, ...@@ -621,18 +632,25 @@ BOOL symt_get_info(struct module* module, const struct symt* type,
case SymTagBlock: case SymTagBlock:
X(DWORD) = vector_length(&((const struct symt_block*)type)->vchildren); X(DWORD) = vector_length(&((const struct symt_block*)type)->vchildren);
break; break;
case SymTagPointerType: /* MS does it that way */ /* some SymTag:s return 0 */
case SymTagArrayType: /* MS does it that way */ case SymTagPointerType:
case SymTagThunk: /* MS does it that way */ case SymTagArrayType:
case SymTagFunctionArgType:
case SymTagThunk:
case SymTagFuncDebugStart:
case SymTagFuncDebugEnd:
case SymTagLabel:
case SymTagTypedef:
case SymTagBaseType:
X(DWORD) = 0; X(DWORD) = 0;
break; break;
default: default:
FIXME("Unsupported sym-tag %s for get-children-count\n", FIXME("Unsupported sym-tag %s for get-children-count\n",
symt_get_tag_str(type->tag)); symt_get_tag_str(type->tag));
/* fall through */ /* fall through */
/* some others return error */
case SymTagData: case SymTagData:
case SymTagPublicSymbol: case SymTagPublicSymbol:
case SymTagBaseType:
return FALSE; return FALSE;
} }
break; break;
......
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