Index:
ChangeLog =================================================================== RCS
file: /home/tools/org.eclipse.cdt.debug.core/ChangeLog,v retrieving revision
1.211 diff -u -r1.211 ChangeLog --- ChangeLog 30 Jun 2003 18:00:14
-0000 1.211 +++ ChangeLog 30 Jun 2003 20:04:25 -0000 @@ -1,4
+1,8 @@ 2003-06-30 Mikhail Khodjaiants + Fix for PR 39100:
CDT/Debug core is asking value 16 times. + *
CValue.java + +2003-06-30 Mikhail Khodjaiants Fix for PR
39087: Cache the MI answer once we know if the variable is
writable. * CVariable.java Index:
src/org/eclipse/cdt/debug/internal/core/model/CValue.java =================================================================== RCS
file:
/home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CValue.java,v retrieving
revision 1.30 diff -u -r1.30 CValue.java ---
src/org/eclipse/cdt/debug/internal/core/model/CValue.java 11 Jun 2003
22:58:44 -0000 1.30 +++
src/org/eclipse/cdt/debug/internal/core/model/CValue.java 30 Jun 2003
20:04:25 -0000 @@ -305,12 +305,11 @@ private String
getCharValueString( ICDICharValue value ) throws
CDIException { - byte byteValue =
(byte)value.byteValue(); - short shortValue =
value.shortValue(); switch( getParentVariable().getFormat()
) { case
ICDIFormat.NATURAL: { + byte
byteValue = (byte)value.byteValue(); return ( (
Character.isISOControl( (char)byteValue )
&& byteValue
!= '\b' &&
byteValue != '\t' && @@ -320,12 +319,13
@@ } case
ICDIFormat.DECIMAL: { - return
( isUnsigned() ) ? Integer.toString( shortValue ) : Integer.toString( byteValue
); + return ( isUnsigned() ) ? Integer.toString(
value.shortValue() ) :
+
Integer.toString( (byte)value.byteValue()
); } case
ICDIFormat.HEXADECIMAL: { StringBuffer
sb = new StringBuffer( "0x" ); - String stringValue =
Integer.toHexString( ( isUnsigned() ) ? shortValue : byteValue
); + String stringValue = ( isUnsigned() ) ?
Integer.toHexString( value.shortValue() ) : Integer.toHexString(
(byte)value.byteValue() ); sb.append( (
stringValue.length() > 2 ) ? stringValue.substring( stringValue.length() - 2
) : stringValue ); return
sb.toString(); } @@ -335,17 +335,15
@@ private String getShortValueString( ICDIShortValue
value ) throws CDIException { - short shortValue =
value.shortValue(); - int intValue =
value.intValue(); switch( getParentVariable().getFormat()
) { case
ICDIFormat.NATURAL: case
ICDIFormat.DECIMAL: - return ( isUnsigned() ) ?
Integer.toString( intValue ) : Short.toString( shortValue
); + return ( isUnsigned() ) ? Integer.toString(
value.intValue() ) : Short.toString( value.shortValue()
); case
ICDIFormat.HEXADECIMAL: { StringBuffer
sb = new StringBuffer( "0x" ); - String stringValue =
Integer.toHexString( ( isUnsigned() ) ? intValue : shortValue
); + String stringValue = Integer.toHexString( (
isUnsigned() ) ? value.intValue() : value.shortValue()
); sb.append( ( stringValue.length() > 4 ) ?
stringValue.substring( stringValue.length() - 4 ) : stringValue
); return
sb.toString(); } @@ -355,17 +353,15
@@ private String getIntValueString( ICDIIntValue value
) throws CDIException { - int intValue =
value.intValue(); - long longValue =
value.longValue(); switch( getParentVariable().getFormat()
) { case
ICDIFormat.NATURAL: case
ICDIFormat.DECIMAL: - return ( isUnsigned() ) ?
Long.toString( longValue ) : Integer.toString( intValue
); + return ( isUnsigned() ) ? Long.toString(
value.longValue() ) : Integer.toString( value.intValue()
); case
ICDIFormat.HEXADECIMAL: { StringBuffer
sb = new StringBuffer( "0x" ); - String stringValue =
( isUnsigned() ) ? Long.toHexString( longValue ) : Integer.toHexString( intValue
); + String stringValue = ( isUnsigned() ) ?
Long.toHexString( value.longValue() ) : Integer.toHexString( value.intValue()
); sb.append( ( stringValue.length() > 8 ) ?
stringValue.substring( stringValue.length() - 8 ) : stringValue
); return
sb.toString(); } @@ -375,17 +371,15
@@ private String getLongValueString( ICDILongValue
value ) throws CDIException { - int intValue =
value.intValue(); - long longValue =
value.longValue(); switch( getParentVariable().getFormat()
) { case
ICDIFormat.NATURAL: case
ICDIFormat.DECIMAL: - return ( isUnsigned() ) ?
Long.toString( longValue ) : Integer.toString( intValue
); + return ( isUnsigned() ) ? Long.toString(
value.longValue() ) : Integer.toString( value.intValue()
); case
ICDIFormat.HEXADECIMAL: { StringBuffer
sb = new StringBuffer( "0x" ); - String stringValue =
Long.toHexString( ( isUnsigned() ) ? longValue : intValue
); + String stringValue = Long.toHexString( (
isUnsigned() ) ? value.longValue() : value.intValue()
); sb.append( ( stringValue.length() > 8 ) ?
stringValue.substring( stringValue.length() - 8 ) : stringValue
); return
sb.toString(); } @@ -395,17 +389,30
@@ private String getLongLongValueString(
ICDILongLongValue value ) throws
CDIException { - BigInteger bigValue = new
BigInteger( value.getValueString() ); - long longValue =
value.longValue(); switch( getParentVariable().getFormat()
) { case
ICDIFormat.NATURAL: case
ICDIFormat.DECIMAL: - return ( isUnsigned() ) ?
bigValue.toString() : Long.toString( longValue
); + { + if ( isUnsigned()
) + { + BigInteger
bigValue = new BigInteger( value.getValueString()
); + return
bigValue.toString(); + } + else + return
Long.toString( value.longValue()
); + } case
ICDIFormat.HEXADECIMAL: { - StringBuffer
sb = new StringBuffer( "0x" ); - sb.append( (
isUnsigned() ) ? bigValue.toString( 16 ) : Long.toHexString( longValue )
); + StringBuffer sb = new StringBuffer( "0x"
); + + if ( isUnsigned()
) + { + BigInteger
bigValue = new BigInteger( value.getValueString()
); + sb.append( bigValue.toString( 16 )
); + } + else + sb.append(
Long.toHexString( value.longValue() ) ); return
sb.toString(); } }
|