1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Fix for PR 39100: CDT/Debug core is asking value 16 times.

This commit is contained in:
Mikhail Khodjaiants 2003-06-30 20:05:43 +00:00
parent faf7bd9da2
commit 0375bb50a1
2 changed files with 32 additions and 21 deletions

View file

@ -1,3 +1,7 @@
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

View file

@ -305,12 +305,11 @@ public class CValue extends CDebugElement implements ICValue
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 @@ public class CValue extends CDebugElement implements ICValue
}
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 @@ public class CValue extends CDebugElement implements ICValue
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 @@ public class CValue extends CDebugElement implements ICValue
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 @@ public class CValue extends CDebugElement implements ICValue
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 @@ public class CValue extends CDebugElement implements ICValue
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();
}
}