Eric Pouech : winedbg: Fix the way array derefs are done.
Alexandre Julliard
julliard at winehq.org
Mon Mar 30 12:08:41 CDT 2009
Module: wine
Branch: master
Commit: fac749634521e085353fee7fe285fdbeffe1b6d8
URL: http://source.winehq.org/git/wine.git/?a=commit;h=fac749634521e085353fee7fe285fdbeffe1b6d8
Author: Eric Pouech <eric.pouech at orange.fr>
Date: Sun Mar 29 17:21:55 2009 +0200
winedbg: Fix the way array derefs are done.
---
programs/winedbg/types.c | 18 +++++++++---------
1 files changed, 9 insertions(+), 9 deletions(-)
diff --git a/programs/winedbg/types.c b/programs/winedbg/types.c
index ef5469f..8d3dabc 100644
--- a/programs/winedbg/types.c
+++ b/programs/winedbg/types.c
@@ -310,26 +310,26 @@ BOOL types_array_index(const struct dbg_lvalue* lvalue, int index,
DWORD64 length;
if (!types_get_real_type(&type, &tag)) return FALSE;
+ /* Contents of array share same data (addr mode, module...) */
+ *result = *lvalue;
switch (tag)
{
case SymTagArrayType:
types_get_info(&type, TI_GET_COUNT, &count);
if (index < 0 || index >= count) return FALSE;
- /* fall through */
+ break;
case SymTagPointerType:
- /* Contents of array share same data (addr mode, module...) */
- *result = *lvalue;
- /*
- * Get the base type, so we know how much to index by.
- */
- types_get_info(&type, TI_GET_TYPE, &result->type.id);
- types_get_info(&result->type, TI_GET_LENGTH, &length);
memory_read_value(lvalue, sizeof(result->addr.Offset), &result->addr.Offset);
- result->addr.Offset += index * (DWORD)length;
break;
default:
assert(FALSE);
}
+ /*
+ * Get the base type, so we know how much to index by.
+ */
+ types_get_info(&type, TI_GET_TYPE, &result->type.id);
+ types_get_info(&result->type, TI_GET_LENGTH, &length);
+ result->addr.Offset += index * (DWORD)length;
return TRUE;
}
More information about the wine-cvs
mailing list