diff --git a/debug/org.eclipse.cdt.debug.core/ChangeLog b/debug/org.eclipse.cdt.debug.core/ChangeLog index 6fbc90bb117..1fa86a7ef64 100644 --- a/debug/org.eclipse.cdt.debug.core/ChangeLog +++ b/debug/org.eclipse.cdt.debug.core/ChangeLog @@ -1,3 +1,7 @@ +2004-01-30 Mikhail Khodjaiants + Fix for bug 50981: In the 'getValue' method of CVariable 'getType' should be only called once. + * CVariable.java + 2004-01-15 Mikhail Khodjaiants Fix for bug 48682: IThread.getBreakpoints() stubbed out. * CDebugTarget.java diff --git a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java index e223f85e5c3..089b85bf432 100644 --- a/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java +++ b/debug/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java @@ -435,7 +435,16 @@ public abstract class CVariable extends CDebugElement return fDisabledValue; if ( fValue == null ) { - if ( getType() != null && getType().isArray() ) + ICType type = null; + try + { + type = getType(); + } + catch( DebugException e ) + { + // ignore and use default type + } + if ( type != null && type.isArray() ) { ICDIVariable var = null; try @@ -446,7 +455,7 @@ public abstract class CVariable extends CDebugElement { requestFailed( "", e ); } - int[] dims = getType().getArrayDimensions(); + int[] dims = type.getArrayDimensions(); if ( dims.length > 0 && dims[0] > 0 ) fValue = CValueFactory.createArrayValue( this, var, 0, dims[0] - 1 ); }