1) Made getVariables and evalBlock methods in PHPDBGInterface synchronized (At least...
[phpeclipse.git] / net.sourceforge.phpeclipse.debug.core / src / net / sourceforge / phpdt / internal / debug / core / model / PHPThread.java
index 49a432e..94feaf9 100644 (file)
@@ -94,7 +94,11 @@ public class PHPThread extends PHPDebugElement implements IThread {
         *
         */
        public IStackFrame[] getStackFrames () throws DebugException {
-               return frames;
+               if (isSuspended()) {
+                       return ((PHPDebugTarget)getDebugTarget()).getStackFrames();
+               } else {
+                       return new IStackFrame[0];
+               }
        }
 
        public int getStackFramesSize () {
@@ -166,7 +170,7 @@ public class PHPThread extends PHPDebugElement implements IThread {
                this.frames = null;                                         // Reset the stackframes
                ev          = new DebugEvent (this, DebugEvent.RESUME, de); // Create an event resume by stepping
 
-               DebugPlugin.getDefault ().fireDebugEventSet (new DebugEvent[] { ev });  // Fire the event
+               DebugPlugin.getDefault ().fireDebugEventSet (new DebugEvent[] { ev });  // Fire the event
        }
 
        /**
@@ -308,22 +312,13 @@ public class PHPThread extends PHPDebugElement implements IThread {
                if (IWorkbenchAdapter.class.equals (arg0)) {
                        return new IWorkbenchAdapter() {
                                public Object[] getChildren(Object o) {
-                                       Object[] children = null;
-
                                        try {
-                                               IStackFrame[] frames = getStackFrames();
-
-                                               if (null != frames) {
-                                                       children = new Object[frames.length];
-                                                       for (int i = 0; i < frames.length; ++i) {
-                                                               children[i] = frames[i];
-                                                       }
-                                               }
+                                               return getStackFrames ();
                                        } catch (DebugException x) {
                                                PHPeclipsePlugin.log ("Unable to get stack frames.", x);
                                        }
 
-                                       return children;
+                                       return new Object[0];
                                }
 
                                public ImageDescriptor getImageDescriptor(Object object) {