Eliminate CLASSNAME duplicate from object properties, see http://bugs.xdebug.org...
authorincastrix <incastrix>
Thu, 4 Feb 2010 19:13:30 +0000 (19:13 +0000)
committerincastrix <incastrix>
Thu, 4 Feb 2010 19:13:30 +0000 (19:13 +0000)
net.sourceforge.phpeclipse.xdebug.core/src/net/sourceforge/phpeclipse/xdebug/php/model/XDebugObjectValue.java

index 1af871a..92ba352 100644 (file)
@@ -1,5 +1,7 @@
 package net.sourceforge.phpeclipse.xdebug.php.model;
 
+import java.util.ArrayList;
+
 import net.sourceforge.phpeclipse.xdebug.core.PHPDebugUtils;
 
 import org.eclipse.debug.core.DebugException;
@@ -20,14 +22,22 @@ public class XDebugObjectValue extends XDebugAbstractValue {
 
                if (NumChildren > 0) {
                        NodeList property = value.getChildNodes();
-                       IVariable[] Variables = new IVariable[property.getLength()];
                        
-                       for (int i = 0; i<property.getLength(); i++) {
+                       ArrayList a = new ArrayList();
+                       for (int i = 0; i < property.getLength(); i++) {
                                Node propertyNode = property.item(i);
-                               Variables[i] = new XDebugVariable(variable, propertyNode);
+                               /* 
+                                * Eliminate CLASSNAME duplicate from object properties.
+                                * see http://bugs.xdebug.org/view.php?id=518
+                                * and http://svn.xdebug.org/cgi-bin/viewvc.cgi/xdebug/trunk/xdebug_var.c?root=xdebug&r1=2962&r2=2996
+                                */
+                               String encoding = PHPDebugUtils.getAttributeValue(propertyNode, "encoding");
+                               if (encoding.equals("base64")) {
+                                       a.add(new XDebugVariable(variable, propertyNode));
+                               }
                        }
                        
-                       setChildren(Variables);
+                       setChildren((IVariable[])a.toArray(new IVariable[a.size()]));
                }
                
                String className = PHPDebugUtils.getAttributeValue(value,"classname");