From: Seyed Amir Hossein Aqajari Date: Thu, 21 Nov 2019 01:27:46 +0000 (-0800) Subject: A minor change in ConflictTracker.java X-Git-Url: http://plrg.eecs.uci.edu/git/?p=jpf-core.git;a=commitdiff_plain;h=c61aed3f0b13d4c606f19fdb2f2e48708a47d5df A minor change in ConflictTracker.java --- diff --git a/src/main/gov/nasa/jpf/listener/ConflictTracker.java b/src/main/gov/nasa/jpf/listener/ConflictTracker.java index b5c8d08..a0ecc4b 100644 --- a/src/main/gov/nasa/jpf/listener/ConflictTracker.java +++ b/src/main/gov/nasa/jpf/listener/ConflictTracker.java @@ -204,9 +204,8 @@ public class ConflictTracker extends ListenerAdapter { HashSet predecessors = new HashSet(); HashSet successors = new HashSet(); HashSet outSet = new HashSet(); + ArrayList setSet = new ArrayList(); HashMap> setSetMap = new HashMap>(); - ArrayList setSet = new ArrayList(); - Node(Integer id) { this.id = id; @@ -220,16 +219,6 @@ public class ConflictTracker extends ListenerAdapter { successors.add(node); } - void setSetSet(ArrayList setSet, boolean isManual) { - if (isManual) - this.setSet = new ArrayList(); - - for (int i = 0;i < setSet.size();i++) { - this.setSet.add(new NameValuePair(setSet.get(i).getAppNum(), setSet.get(i).getValue(), - setSet.get(i).getVarName(), setSet.get(i).getIsManual())); - } - } - Integer getId() { return id; } @@ -242,14 +231,14 @@ public class ConflictTracker extends ListenerAdapter { return successors; } - ArrayList getSetSet() { - return setSet; - } - HashSet getOutSet() { return outSet; } + ArrayList getSetSet() { + return setSet; + } + HashMap> getSetSetMap() { return setSetMap; } @@ -280,7 +269,7 @@ public class ConflictTracker extends ListenerAdapter { this.varName = varName; } - void setIsManual(String varName) { + void setIsManual(String varName) { this.isManual = isManual; } @@ -352,11 +341,18 @@ public class ConflictTracker extends ListenerAdapter { Node currentNode = nodes.get(id); - // Update the setSet for this new node - currentNode.setSetSet(tempSetSet, manual); - tempSetSet = new ArrayList(); + if ((currentNode.getSetSetMap().get(parentNode) == null) || manual) + currentNode.getSetSetMap().put(parentNode, new ArrayList()); + + // Update the setSet for the edge + currentNode.getSetSetMap().get(parentNode).addAll(tempSetSet); + parentNode.getSetSet().addAll(tempSetSet); + tempSetSet = new ArrayList(); manual = false; + // Check for the conflict in this edge + conflictFound = checkForConflict(parentNode); + if (search.isNewState()) { detail = "new"; } else { @@ -380,17 +376,8 @@ public class ConflictTracker extends ListenerAdapter { if (!(parentNode.getSuccessors().contains(currentNode))) parentNode.addSuccessor(currentNode); - - // Update the setSetMap of the current node - for (Node i : currentNode.getPredecessors()) { - currentNode.getSetSetMap().put(i, i.getSetSet()); - } - // Update the edge and check if the outset of the current node is changed or not to propagate the change boolean isChanged = updateEdge(parentNode, currentNode); - - // Check for the conflict in this edge - conflictFound = checkForConflict(currentNode); // Check if the outSet of this state has changed, update all of its successors' sets if any if (isChanged)