diff --git a/src/org/ntlab/traceDebugger/Variable.java b/src/org/ntlab/traceDebugger/Variable.java index 0156d8d..125ff5f 100644 --- a/src/org/ntlab/traceDebugger/Variable.java +++ b/src/org/ntlab/traceDebugger/Variable.java @@ -132,6 +132,10 @@ public TracePoint getBeforeTracePoint() { return before; } + + public void setBeforeTracePoint(TracePoint before) { + this.before = before; + } public Variable getParent() { return parent; diff --git a/src/org/ntlab/traceDebugger/Variables.java b/src/org/ntlab/traceDebugger/Variables.java index 915b369..b0e5bbb 100644 --- a/src/org/ntlab/traceDebugger/Variables.java +++ b/src/org/ntlab/traceDebugger/Variables.java @@ -155,19 +155,20 @@ } public void updateForDifferential(TracePoint from, TracePoint to, boolean isReturned) { - updateForDifferential(); + updateForDifferential(to); resetSpecialValues(); createSpecialVariables(from, to, isReturned); } - private void updateForDifferential() { + private void updateForDifferential(TracePoint before) { for (Variable variable : roots) { - updateForDifferential(variable, new HashSet()); + updateForDifferential(variable, new HashSet(), before); } containerIdToDifferentialUpdateTracePoints.clear(); } - private void updateForDifferential(Variable variable, Set hasCheckedObjectIdSet) { + private void updateForDifferential(Variable variable, Set hasCheckedObjectIdSet, TracePoint before) { + variable.setBeforeTracePoint(before); Set containerIdList = containerIdToDifferentialUpdateTracePoints.keySet(); String containerId = variable.getContainerId(); if (containerIdList.contains(containerId)) { @@ -191,7 +192,7 @@ hasCheckedObjectIdSetOnNext.add(variable.getContainerId()); for (Variable child : variable.getChildren()) { if (hasCheckedObjectIdSetOnNext.contains(child.getContainerId())) continue; - updateForDifferential(child, hasCheckedObjectIdSetOnNext); + updateForDifferential(child, hasCheckedObjectIdSetOnNext, before); } }