Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] Fix for PR 39100: CDT/Debug core is asking value 16 times.

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();
    }
   }

Back to the top