From: Seyed Amir Hossein Aqajari Date: Sat, 7 Dec 2019 00:25:17 +0000 (-0800) Subject: Compacting the methods X-Git-Url: http://plrg.eecs.uci.edu/git/?p=jpf-core.git;a=commitdiff_plain;h=8d31b251fc6409b59f2931be5ee97114190f026a;hp=84bab769b729b981b5fe8cd91b182d861df33991 Compacting the methods --- diff --git a/src/main/gov/nasa/jpf/listener/ConflictTracker.java b/src/main/gov/nasa/jpf/listener/ConflictTracker.java index 8c1e2af..82a7114 100644 --- a/src/main/gov/nasa/jpf/listener/ConflictTracker.java +++ b/src/main/gov/nasa/jpf/listener/ConflictTracker.java @@ -118,15 +118,9 @@ public class ConflictTracker extends ListenerAdapter { // Check if the node has changed or not if (isChanged) { // Check for a conflict in all the transition out of this node - for (Node node : nodeToProcess.getSuccessors()) { - HashMap> setSets = nodeToProcess.getOutgoingEdges().get(node).getSetSetMap(); - for (Map.Entry mapElement : setSets.entrySet()) { - Transition transition = (Transition)mapElement.getKey(); - if (checkForConflict(nodeToProcess, node, transition)) - return true; - } - } - + if (checkAllSuccForConflict(nodeToProcess)) + return true; + // Update the parents list for the successors of the current node parents.clear(); parents.add(nodeToProcess); @@ -157,6 +151,18 @@ public class ConflictTracker extends ListenerAdapter { return message; } + boolean checkAllSuccForConflict(Node currentNode) { + for (Node node : currentNode.getSuccessors()) { + HashMap> setSets = currentNode.getOutgoingEdges().get(node).getSetSetMap(); + for (Map.Entry mapElement : setSets.entrySet()) { + Transition transition = (Transition)mapElement.getKey(); + if (checkForConflict(currentNode, node, transition)) + return true; + } + } + return false; + } + boolean checkForConflict(Node parentNode, Node currentNode, Transition currentTransition) { ArrayList setSet = parentNode.getOutgoingEdges().get(currentNode).getSetSetMap().get(currentTransition); HashMap valueMap = new HashMap(); // HashMap from varName to value @@ -484,16 +490,9 @@ public class ConflictTracker extends ListenerAdapter { boolean isChanged = updateTheOutSet(parentNode, currentNode); // Check if the outSet of this state has changed, update all of its successors' sets if any - if (isChanged) { - for (Node node : currentNode.getSuccessors()) { - HashMap> setSets = currentNode.getOutgoingEdges().get(node).getSetSetMap(); - for (Map.Entry mapElement : setSets.entrySet()) { - Transition currentTransition = (Transition)mapElement.getKey(); - conflictFound = conflictFound || checkForConflict(currentNode, node, currentTransition); - } - } - conflictFound = conflictFound || propagateTheChange(currentNode); - } + if (isChanged) + conflictFound = conflictFound || checkAllSuccForConflict(currentNode) || propagateTheChange(currentNode); + // Update the parent node if (nodes.containsKey(id)) { parentNode = nodes.get(id);