1) Fixed bug #1366994 . bool and resource variables has not been added to main variab...
[phpeclipse.git] / net.sourceforge.phpeclipse.debug.core / src / net / sourceforge / phpdt / internal / debug / core / PHPDBGInterface.java
index fc5d18e..ddcfcb5 100644 (file)
@@ -26,8 +26,6 @@ import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.Status;
 import org.eclipse.debug.core.DebugException;
 
-import java.io.RandomAccessFile;
-
 /**
  * The interface object are created by the proxy
  *
@@ -427,8 +425,22 @@ public class PHPDBGInterface {
                evalStr         = new PHPDBGEvalString (stack, serGlobals); // Process serialized variables
                DBGVarList      = evalStr.getVariables ();
 
-               //resetHasChangedInfo (DBGVarList);                                                     // Reset the hasChanged info for all PHPVariables
-               //updateVariableList (DBGVarList, evalStr.getVariables ());     // Replicate the 'static' variable list and the via DBG received variable list
+               if (DBGVarList.size () > 0) {                                                           // Did we get back variables?
+                       PHPVariable var = (PHPVariable) DBGVarList.get (0);             // Yes, then get the first PHPVariable
+                       PHPValue    val = (PHPValue) var.getValue ();           // Get the value
+
+                       if (var.getName ().equals ("")) {                                               // Is the root node an empty node (usually it is)
+                               DBGVarList = val.getChildVariables ();              // Then remove the empty node.
+                                                                                                                                       // With removing the empty root node, it wouldn't be necessary to
+                                                                                                                                       // set the name to an empty string. So the code below is just for
+                                                                                                                                       // info or in case the users want to have the empty root node.
+
+                                                                                                                                       // The eclipse variable view cannot handle Variables which have an empty name
+                                                                                                                                       // when it comes to variable tree restore operation. Without a name, no restore!
+                               var.setName (" ");                                                              // Give a name to the variable root node. Even if it is only a space :-)
+                       }                                                                                                               // TODO the best would be to remove the empty root node, but this would
+                                                                                                                                       // require a understanding and reworking of the PHPDBGEvalstring class.
+               }
 
                return DBGVarList;                                                                                      // Return the variables as list
        }
@@ -460,7 +472,10 @@ public class PHPDBGInterface {
                // Add command data
                DBGPacket.addFrame(DBGFrame1);
 
-               if(proxy.getSocket().isClosed()) return;
+               if (proxy.getSocket ().isClosed ()) {                   // Do we have a socket for DBG communication?
+                       return;                                                                                         //  No, then leave here
+               }
+
                DBGPacket.sendPacket(os);
 
                waitResponse(1000);
@@ -486,7 +501,9 @@ public class PHPDBGInterface {
                // Add command data
                DBGPacket.addFrame(DBGFrame1);
 
-               if(proxy.getSocket().isClosed()) return null;
+               if (proxy.getSocket ().isClosed ()) {                       // Do we have a socket for DBG communication?
+                       return null;                                                                                    //  No, then leave here
+               }
                DBGPacket.sendPacket(os);
 
                waitResponse(1000);