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