Eric Pouech : dbghelp:
Implemented TI_GET_COUNT in SymGetTypeInfo for function.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Mar 6 04:51:03 CST 2006
Module: wine
Branch: refs/heads/master
Commit: e70617883b4e883d46dc68ce8d6dfde7c4d354e4
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=e70617883b4e883d46dc68ce8d6dfde7c4d354e4
Author: Eric Pouech <eric.pouech at wanadoo.fr>
Date: Sun Mar 5 21:48:07 2006 +0100
dbghelp: Implemented TI_GET_COUNT in SymGetTypeInfo for function.
---
dlls/dbghelp/type.c | 21 ++++++++++++++-------
1 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/dlls/dbghelp/type.c b/dlls/dbghelp/type.c
index 4a336c5..4177aaa 100644
--- a/dlls/dbghelp/type.c
+++ b/dlls/dbghelp/type.c
@@ -551,13 +551,20 @@ BOOL symt_get_info(const struct symt* ty
break;
case TI_GET_COUNT:
- /* it seems that FunctionType also react to GET_COUNT (same value as
- * GET_CHILDREN_COUNT ?, except for C++ methods, where it seems to
- * also include 'this' (GET_CHILDREN_COUNT+1)
- */
- if (type->tag != SymTagArrayType) return FALSE;
- X(DWORD) = ((const struct symt_array*)type)->end -
- ((const struct symt_array*)type)->start + 1;
+ switch (type->tag)
+ {
+ case SymTagArrayType:
+ X(DWORD) = ((const struct symt_array*)type)->end -
+ ((const struct symt_array*)type)->start + 1;
+ break;
+ case SymTagFunctionType:
+ /* this seems to be wrong for (future) C++ methods, where 'this' parameter
+ * should be included in this value (and not in GET_CHILDREN_COUNT)
+ */
+ X(DWORD) = vector_length(&((const struct symt_function_signature*)type)->vchildren);
+ break;
+ default: return FALSE;
+ }
break;
case TI_GET_DATAKIND:
More information about the wine-cvs
mailing list