ide/debugger/watches: Fixed evaluating casted indexed arrays
authorJerome St-Louis <jerome@ecere.com>
Wed, 9 Jul 2014 07:27:41 +0000 (03:27 -0400)
committerJerome St-Louis <jerome@ecere.com>
Wed, 9 Jul 2014 07:27:41 +0000 (03:27 -0400)
- Rather than looking at the resulting expression type, looking at the indexed expression's type

ide/src/debugger/debugTools.ec

index aeb88b4..e7a0815 100644 (file)
@@ -1419,6 +1419,7 @@ void DebugComputeExpression(Expression exp)
             Expression prev = exp.prev, next = exp.next;
             char * evaluation = null;
             ExpressionType evalError = dummyExp;
+            Type dataType = exp.index.exp.expType ? exp.index.exp.expType.type : null;
 
             if(!exp.index.exp.isConstant)
                exp.isConstant = false;
@@ -1429,12 +1430,12 @@ void DebugComputeExpression(Expression exp)
             // 4 == size = ComputeTypeSize(exp.index.exp.expType);
             // 0 == size = ComputeTypeSize(exp.index.exp.expType.arrayType);
 
-            size = ComputeTypeSize(exp.expType);
-            if(exp.expType && exp.expType.type && exp.expType.kind == arrayType)
+            size = ComputeTypeSize(dataType);
+            if(dataType && dataType.type && dataType.kind == arrayType)
                // For multilevels arrays
                format = 'x';
             else
-               format = GetGdbFormatChar(exp.expType);
+               format = GetGdbFormatChar(dataType);
 
             for(e = exp.index.index->first; e; e = e.next)
             {