diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/DefaultVMModelProxyStrategy.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/DefaultVMModelProxyStrategy.java index de33edf5007..66238fce289 100644 --- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/DefaultVMModelProxyStrategy.java +++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/ui/viewmodel/DefaultVMModelProxyStrategy.java @@ -262,7 +262,7 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy { * Optimization 1: If the first-level child node does not have * IModelDelta.CONTENT but one of its descendants does, then * for optimization reasons we return IModelDelta.STATE - * instead. + * instead. See {@link DefaultVMModelProxyStrategy#buildChildDeltasForAllContexts(IVMNode, Object, VMDelta, int, RequestMonitor)} * * Optimization 2: If the parent delta contains * IModelDelta.CONTENT, we do not need to specify it for its @@ -500,11 +500,15 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy { return; } - // Check if the child delta only has an IModelDelta.STATE flag. - // If that's the case, we can skip creating a delta for this node, - // because the TreeUpdatePolicy does not use the full path from the - // delta to handle these flags. Similarly, the index argument is - // not necessary either. + // Check if the child delta only has an IModelDelta.STATE flag. If + // that's the case, we can skip creating a delta for this node, because + // the Debug Platform's handling of that flag does not require ancestor + // deltas (doesn't need to know the path to the element) + // + // We can skip the delta for this node even if a deeper IVMNode child + // calls for an IModelDelta.CONTENT flag, since what we do in that case + // is have the CONTENT flag applied to the first ancestor delta that has + // something other than IModelDelta.STATE. // // For example: suppose the model looks like: // A- @@ -517,7 +521,8 @@ public class DefaultVMModelProxyStrategy implements IVMModelProxy { // |-III // |-d // - // And if VM Node responsible for element a, b, c, d needs a CONTENT update, then the delta may look like this: + // And if VM Node responsible for element a, b, c, d needs a CONTENT + // update, then the delta may look like this: // // Element: A // Flags: CONTENT