Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[cdt-patch] NPE when viewing value of array partition in detail panel

Index: ChangeLog
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/ChangeLog,v
retrieving revision 1.233
diff -u -r1.233 ChangeLog
--- ChangeLog 19 Aug 2003 02:02:08 -0000 1.233
+++ ChangeLog 19 Aug 2003 20:51:16 -0000
@@ -1,3 +1,8 @@
+2003-08-19 Mikhail Khodjaiants
+ Create ICDIVariableObject for each array partition to compute a detail panel's value.
+ * CArrayPartition.java
+ * CVariable.java
+
 2003-08-18 Alain Magloire
 
  ICDISharedLibraryEvent.java:
Index: src/org/eclipse/cdt/debug/internal/core/model/CArrayPartition.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CArrayPartition.java,v
retrieving revision 1.8
diff -u -r1.8 CArrayPartition.java
--- src/org/eclipse/cdt/debug/internal/core/model/CArrayPartition.java 13 Aug 2003 18:19:53 -0000 1.8
+++ src/org/eclipse/cdt/debug/internal/core/model/CArrayPartition.java 19 Aug 2003 20:51:29 -0000
@@ -13,6 +13,7 @@
 import org.eclipse.cdt.debug.core.cdi.event.ICDIEvent;
 import org.eclipse.cdt.debug.core.cdi.model.ICDIValue;
 import org.eclipse.cdt.debug.core.cdi.model.ICDIVariable;
+import org.eclipse.cdt.debug.core.cdi.model.ICDIVariableObject;
 import org.eclipse.cdt.debug.core.cdi.model.type.ICDIArrayValue;
 import org.eclipse.cdt.debug.core.model.ICType;
 import org.eclipse.debug.core.DebugException;
@@ -30,6 +31,7 @@
 
  private int fStart;
  private int fEnd;
+ private ICDIVariableObject fCDIVariableObject;
  private ICDIVariable fCDIVariable;
  private ICType fType = null;
 
@@ -185,5 +187,36 @@
  public boolean hasChildren()
  {
   return true;
+ }
+
+ /* (non-Javadoc)
+  * @see org.eclipse.cdt.debug.internal.core.model.CVariable#getQualifiedName()
+  */
+ protected String getQualifiedName() throws DebugException
+ {
+  if ( fQualifiedName == null )
+  {
+   try
+   {
+    if ( getVariableObject() != null )
+    {
+     fQualifiedName = getVariableObject().getQualifiedName();
+    }
+   }
+   catch( CDIException e )
+   {
+    requestFailed( "Qualified name is not available.", e );
+   }
+  }
+  return fQualifiedName;
+ }
+
+ private ICDIVariableObject getVariableObject() throws CDIException
+ {
+  if ( fCDIVariableObject == null )
+  {
+   fCDIVariableObject = getCDISession().getVariableManager().getVariableObjectAsArray( fCDIVariable, getStart(), getEnd() - getStart() + 1 );
+  }
+  return fCDIVariableObject;
  }
 }
Index: src/org/eclipse/cdt/debug/internal/core/model/CVariable.java
===================================================================
RCS file: /home/tools/org.eclipse.cdt.debug.core/src/org/eclipse/cdt/debug/internal/core/model/CVariable.java,v
retrieving revision 1.50
diff -u -r1.50 CVariable.java
--- src/org/eclipse/cdt/debug/internal/core/model/CVariable.java 13 Aug 2003 21:16:23 -0000 1.50
+++ src/org/eclipse/cdt/debug/internal/core/model/CVariable.java 19 Aug 2003 20:51:29 -0000
@@ -324,7 +324,7 @@
  /**
   * The full name of this variable.
   */
- private String fQualifiedName = null;
+ protected String fQualifiedName = null;
 
  /**
   * Change flag.

Back to the top