Module: wine
Branch: master
Commit: dd572227cb7c9473a06bc7e565435daf46441492
URL: https://source.winehq.org/git/wine.git/?a=commit;h=dd572227cb7c9473a06bc7e5…
Author: Eric Pouech <eric.pouech(a)gmail.com>
Date: Wed Oct 6 10:01:36 2021 +0200
dbghelp: Silence FIXMEs in SymGetTypeInfo().
Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/dbghelp/type.c | 34 ++++++++++++++++++++++++++++++++++
1 file changed, 34 insertions(+)
diff --git a/dlls/dbghelp/type.c b/dlls/dbghelp/type.c
index 709a4bc851b..d2721c764cf 100644
--- a/dlls/dbghelp/type.c
+++ b/dlls/dbghelp/type.c
@@ -111,6 +111,10 @@ const char* symt_get_name(const struct symt* sym)
case SymTagArrayType:
case SymTagPointerType:
case SymTagFunctionType:
+ case SymTagFunctionArgType:
+ case SymTagBlock:
+ case SymTagFuncDebugStart:
+ case SymTagFuncDebugEnd:
return NULL;
}
}
@@ -167,6 +171,14 @@ BOOL symt_get_address(const struct symt* type, ULONG64* addr)
/* fall through */
case SymTagExe:
case SymTagCompiland:
+ case SymTagFunctionType:
+ case SymTagFunctionArgType:
+ case SymTagBaseType:
+ case SymTagUDT:
+ case SymTagEnum:
+ case SymTagTypedef:
+ case SymTagPointerType:
+ case SymTagArrayType:
return FALSE;
}
return TRUE;
@@ -728,6 +740,7 @@ BOOL symt_get_info(struct module* module, const struct symt* type,
case SymTagExe:
case SymTagCompiland:
case SymTagFunctionType:
+ case SymTagFunctionArgType:
return FALSE;
}
break;
@@ -798,6 +811,20 @@ BOOL symt_get_info(struct module* module, const struct symt* type,
default:
FIXME("Unsupported sym-tag %s for get-offset\n",
symt_get_tag_str(type->tag));
+ /* fall through */
+ case SymTagExe:
+ case SymTagCompiland:
+ case SymTagUDT:
+ case SymTagFunctionType:
+ case SymTagFunctionArgType:
+ case SymTagPointerType:
+ case SymTagArrayType:
+ case SymTagBaseType:
+ case SymTagTypedef:
+ case SymTagBlock:
+ case SymTagFuncDebugStart:
+ case SymTagFuncDebugEnd:
+ case SymTagLabel:
return FALSE;
}
break;
@@ -862,7 +889,14 @@ BOOL symt_get_info(struct module* module, const struct symt* type,
/* fall through */
case SymTagPublicSymbol:
case SymTagThunk:
+ case SymTagBlock:
+ case SymTagFuncDebugStart:
+ case SymTagFuncDebugEnd:
case SymTagLabel:
+ case SymTagExe:
+ case SymTagCompiland:
+ case SymTagUDT:
+ case SymTagBaseType:
return FALSE;
}
break;
Module: wine
Branch: master
Commit: a4ebfe8c7652b81eaea2cf04fa924e6fe1d3dd5d
URL: https://source.winehq.org/git/wine.git/?a=commit;h=a4ebfe8c7652b81eaea2cf04…
Author: Eric Pouech <eric.pouech(a)gmail.com>
Date: Wed Oct 6 10:01:30 2021 +0200
dbghelp: Expose no children in SymGetTypeInfo() for some SymTags.
Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
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;
Module: wine
Branch: master
Commit: 4540d4f4924e1c143073afecd550401771bd9918
URL: https://source.winehq.org/git/wine.git/?a=commit;h=4540d4f4924e1c143073afec…
Author: Eric Pouech <eric.pouech(a)gmail.com>
Date: Wed Oct 6 10:01:05 2021 +0200
dbghelp: Expose SymTagBlock's children in SymGetTypeInfo().
Signed-off-by: Eric Pouech <eric.pouech(a)gmail.com>
Signed-off-by: Alexandre Julliard <julliard(a)winehq.org>
---
dlls/dbghelp/type.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/dlls/dbghelp/type.c b/dlls/dbghelp/type.c
index 69b25bafef0..e7c180f32d7 100644
--- a/dlls/dbghelp/type.c
+++ b/dlls/dbghelp/type.c
@@ -555,6 +555,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));
@@ -614,6 +615,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 */