From c489d7f7e7e74410db8ca52acccb125413fefa0c Mon Sep 17 00:00:00 2001 From: Pawel Piech Date: Thu, 9 Oct 2008 16:20:40 +0000 Subject: [PATCH] [250225] - Narrowed down the cases where expression is refreshed to only when an expression is changed. --- .../expression/ExpressionsChangedUpdateTester.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/expression/ExpressionsChangedUpdateTester.java b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/expression/ExpressionsChangedUpdateTester.java index 7e71828a5c0..dc9378c9b82 100644 --- a/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/expression/ExpressionsChangedUpdateTester.java +++ b/plugins/org.eclipse.dd.dsf.debug.ui/src/org/eclipse/dd/dsf/debug/internal/provisional/ui/viewmodel/expression/ExpressionsChangedUpdateTester.java @@ -30,10 +30,14 @@ class ExpressionsChangedUpdateTester implements IElementUpdateTester { return ExpressionsManualUpdatePolicy.FLUSH; } - // Check whether the element path contains one of the changed expressions. - for (int i = 0; i < path.getSegmentCount(); i++) { - if (eventContainsElement(path.getSegment(i))) { - return ExpressionsManualUpdatePolicy.FLUSH; + // If the expressions were modified, flush the entries which are under the + // given expression. To do that, check whether the element path contains one + // of the changed expressions. + if (fEvent.getType().equals(ExpressionsChangedEvent.Type.CHANGED)) { + for (int i = 0; i < path.getSegmentCount(); i++) { + if (eventContainsElement(path.getSegment(i))) { + return ExpressionsManualUpdatePolicy.FLUSH; + } } } return 0;