private void fireDeltaAndClearTopFrame(IThread thread, int flags) { ModelDelta delta = buildRootDelta(); ModelDelta node = addPathToThread(delta, thread); node.addNode(thread, indexOf(thread), flags); synchronized (this) { fLastTopFrame.remove(thread); } fireDelta(delta); }
private void fireDeltaUpdatingThread(IThread thread, int flags) { ModelDelta delta = buildRootDelta(); ModelDelta node = addPathToThread(delta, thread); node = node.addNode(thread, flags); fireDelta(delta); }
@Override protected void handleChange(DebugEvent event) { IStackFrame frame = (IStackFrame) event.getSource(); ModelDelta root = fThreadHandler.buildRootDelta(); ModelDelta delta = fThreadHandler.addPathToThread(root, frame.getThread()); delta = delta.addNode(frame.getThread(), IModelDelta.NO_CHANGE); int flags = IModelDelta.NO_CHANGE; if (event.getDetail() == DebugEvent.CONTENT) { flags = flags | IModelDelta.CONTENT; } else if (event.getDetail() == DebugEvent.STATE) { flags = flags | IModelDelta.STATE; } delta = delta.addNode(frame, flags); fireDelta(root); }
@Override protected void handleLateSuspend(DebugEvent suspend, DebugEvent resume) { IThread thread = queueSuspendedThread(suspend); if (suspend.isEvaluation() && suspend.getDetail() == DebugEvent.EVALUATION_IMPLICIT) { // late implicit evaluation - update thread and frame ModelDelta delta = buildRootDelta(); ModelDelta node = addPathToThread(delta, thread); node = node.addNode(thread, IModelDelta.STATE); try { IStackFrame frame = thread.getTopStackFrame(); if (frame != null) { node.addNode(frame, IModelDelta.STATE); fireDelta(delta); } } catch (DebugException e) { } } else { fireDeltaUpdatingSelectedFrame(thread, IModelDelta.STATE | IModelDelta.EXPAND, suspend); } }
return super.addPathToThread(delta, thread);
private void fireDeltaUpdatingSelectedFrame(IThread thread, int flags, DebugEvent event) { ModelDelta delta = buildRootDelta(); ModelDelta node = addPathToThread(delta, thread); IStackFrame prev = null; synchronized (this) {
if (event.isEvaluation()) { ModelDelta delta = buildRootDelta(); ModelDelta node = addPathToThread(delta, thread); node = node.addNode(thread, IModelDelta.STATE); try {