1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 22:52:11 +02:00

Bug 312229: Missing delta generation was forcing us to refresh the expressions view needlessly.

This commit is contained in:
Marc Khouzam 2010-05-10 20:15:50 +00:00
parent 0be25d015f
commit a29b7e2b10
2 changed files with 7 additions and 3 deletions

View file

@ -216,7 +216,6 @@ public class DsfCastToTypeSupport {
private void fireExpressionChangedEvent(IExpressionDMContext exprDMC) { private void fireExpressionChangedEvent(IExpressionDMContext exprDMC) {
ExpressionChangedEvent event = new ExpressionChangedEvent(exprDMC); ExpressionChangedEvent event = new ExpressionChangedEvent(exprDMC);
dmvmProvider.handleEvent(event); dmvmProvider.handleEvent(event);
dmvmProvider.refresh(); // this seems to be required, esp. for Expressions View
} }
} }

View file

@ -1201,8 +1201,13 @@ public class VariableVMNode extends AbstractExpressionVMNode
public void buildDeltaForExpression(IExpression expression, int elementIdx, Object event, VMDelta parentDelta, public void buildDeltaForExpression(IExpression expression, int elementIdx, Object event, VMDelta parentDelta,
TreePath path, RequestMonitor rm) TreePath path, RequestMonitor rm)
{ {
// Always refresh the contents of the view upon suspended event. // The following events can affect any expression's values,
if (event instanceof ISuspendedDMEvent) { // refresh the contents of the parent element (i.e. all the expressions).
if (event instanceof ISuspendedDMEvent ||
event instanceof IMemoryChangedEvent ||
event instanceof IExpressionChangedDMEvent ||
(event instanceof PropertyChangeEvent &&
((PropertyChangeEvent)event).getProperty() == IDebugVMConstants.PROP_FORMATTED_VALUE_FORMAT_PREFERENCE) ) {
parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.CONTENT); parentDelta.setFlags(parentDelta.getFlags() | IModelDelta.CONTENT);
} }