private PHPVariable[] variables; // The array of variables TODO: better introduce a vector?
private Vector varList = new Vector ();
private String description; // The source file name with the full path on target/remote system
- private boolean fUpToDate; //
+ private boolean fUpToDate; // Indicates whether the variable list within this stackframe is
+ // up-to-date
+ private boolean fAvailable; // Needed when updating the stackframe list, shows whether the stackframe
+ // is within the list which was received from dbg
/**
*
/**
*
+ */
+ public void setAvailable (boolean available) {
+ fAvailable = available;
+ }
+
+ /**
+ *
+ */
+ public boolean isAvailable () {
+ return fAvailable;
+ }
+
+
+ /**
+ * @see IAdaptable#getAdapter(Class)
+ */
+ public Object getAdapter(Class adapter) {
+ if (adapter == PHPStackFrame.class) {
+ return this;
+ }
+
+ return super.getAdapter(adapter);
+ }
+
+ /**
+ *
*
*/
private void resetHasChangedInfo (Vector varList) {
* @return The array of PHPVariables for this stackframe.
*/
public IVariable[] getVariables() throws DebugException {
- PHPVariable[] variablesNew; // The intermediate storage of the variable array we get from DBG proxy
-
- //variablesNew = this.getPHPDBGProxy ().readVariables (this); // Get the variable array from DBG proxy
- //variables = variablesNew; // Store the array the stackframes member variable
-
if (!isUpToDate ()) {
resetHasChangedInfo (varList);
updateVariableList (varList, this.getPHPDBGProxy ().readVariables (this));
*
*/
public boolean hasVariables () throws DebugException {
- return (varList.size () > 0);
+ return true;
+ // return (varList.size () > 0);
}
public int getLineNumber() {
thread.prepareForResume (DebugEvent.STEP_INTO); // Don't know why, but this is necessary
this.getPHPDBGProxy ().readStepIntoEnd (PHPStackFrame.this);
-
- ev = new DebugEvent (this.getThread (), DebugEvent.RESUME, DebugEvent.STEP_INTO);
- DebugPlugin.getDefault().fireDebugEventSet (new DebugEvent[] { ev });
+
+ // Commented out sending the RESUME event because it was already sent by prepareForResume.
+ // The second RESUME event leads only to a little flickering within the variables view.
+ // It is also not clear why this event was necessary in eclipse < 3.2
+ // Also sending a SUSPEND event here leads to a total rebuild of the variables view.
+ // (eclipse 3.2 has a build in timeout of 500 ms which leads to a auto suspend, with
+ // no flickering... but why???)
+ //
+ //ev = new DebugEvent (this.getThread (), DebugEvent.RESUME, DebugEvent.STEP_INTO);
+ //DebugPlugin.getDefault().fireDebugEventSet (new DebugEvent[] { ev });
}
/**
thread.prepareForResume (DebugEvent.STEP_OVER);
this.getPHPDBGProxy ().readStepOverEnd (PHPStackFrame.this) ;
- ev = new DebugEvent (this.getThread (), DebugEvent.RESUME, DebugEvent.STEP_OVER);
- DebugPlugin.getDefault ().fireDebugEventSet (new DebugEvent[] { ev });
+ // See comment within the previous stepInto method.
+ //
+ //ev = new DebugEvent (this.getThread (), DebugEvent.RESUME, DebugEvent.STEP_OVER);
+ //DebugPlugin.getDefault ().fireDebugEventSet (new DebugEvent[] { ev });
}
/**