X-Git-Url: http://plrg.eecs.uci.edu/git/?p=jpf-core.git;a=blobdiff_plain;f=src%2Fmain%2Fgov%2Fnasa%2Fjpf%2Flistener%2FConflictTracker.java;h=b5c8d089ed5c0134fdf5004d518896de64868c4e;hp=ca405b25dacf78abaec4f885cbef1ef0c7852956;hb=f268249692eaebabff7fca979a59fdf415b00867;hpb=5b42a3d53e899e629299f1c75c1c880fcb947ec1 diff --git a/src/main/gov/nasa/jpf/listener/ConflictTracker.java b/src/main/gov/nasa/jpf/listener/ConflictTracker.java index ca405b2..b5c8d08 100644 --- a/src/main/gov/nasa/jpf/listener/ConflictTracker.java +++ b/src/main/gov/nasa/jpf/listener/ConflictTracker.java @@ -172,11 +172,14 @@ public class ConflictTracker extends ListenerAdapter { boolean updateEdge(Node parentNode, Node currentNode) { ArrayList setSet = currentNode.getSetSetMap().get(parentNode); HashSet updatedVarNames = new HashSet(); + HashMap writerLastValue = new HashMap(); + boolean isChanged = false; if (setSet != null) { for (int i = 0;i < setSet.size();i++) { updatedVarNames.add(setSet.get(i).getVarName()); + writerLastValue.put(setSet.get(i).getAppNum(), setSet.get(i).getValue()); } } @@ -187,9 +190,9 @@ public class ConflictTracker extends ListenerAdapter { if (setSet != null) { for (int i = 0;i < setSet.size();i++) { - if (currentNode.getOutSet().contains(setSet.get(i))) - currentNode.getOutSet().remove(setSet.get(i)); - isChanged |= currentNode.getOutSet().add(setSet.get(i)); + if (setSet.get(i).getValue().equals(writerLastValue.get(setSet.get(i).getAppNum()))) { + isChanged |= currentNode.getOutSet().add(setSet.get(i)); + } } }