From 025ad686affd671b6ce4df5f1756973252975739 Mon Sep 17 00:00:00 2001 From: rtrimana Date: Wed, 17 Jun 2020 11:25:42 -0700 Subject: [PATCH] Fixing a bug in isConflict method. --- src/main/gov/nasa/jpf/listener/DPORStateReducer.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/gov/nasa/jpf/listener/DPORStateReducer.java b/src/main/gov/nasa/jpf/listener/DPORStateReducer.java index f690382..a483afc 100644 --- a/src/main/gov/nasa/jpf/listener/DPORStateReducer.java +++ b/src/main/gov/nasa/jpf/listener/DPORStateReducer.java @@ -961,21 +961,21 @@ public class DPORStateReducer extends ListenerAdapter { private boolean isConflictFound(Execution execution, int reachableChoice, Execution conflictExecution, int conflictChoice, ReadWriteSet currRWSet) { ArrayList executionTrace = execution.getExecutionTrace(); - HashMap execRWFieldsMap = execution.getReadWriteFieldsMap(); ArrayList conflictTrace = conflictExecution.getExecutionTrace(); + HashMap confRWFieldsMap = conflictExecution.getReadWriteFieldsMap(); // Skip if this event does not have any Read/Write set or the two events are basically the same event (number) - if (!execRWFieldsMap.containsKey(conflictChoice) || + if (!confRWFieldsMap.containsKey(conflictChoice) || executionTrace.get(reachableChoice).getChoice() == conflictTrace.get(conflictChoice).getChoice()) { return false; } // R/W set of choice/event that may have a potential conflict - ReadWriteSet evtRWSet = execRWFieldsMap.get(conflictChoice); + ReadWriteSet confRWSet = confRWFieldsMap.get(conflictChoice); // Check for conflicts with Read and Write fields for Write instructions Set currWriteSet = currRWSet.getWriteSet(); for(String writeField : currWriteSet) { int currObjId = currRWSet.writeFieldObjectId(writeField); - if ((evtRWSet.readFieldExists(writeField) && evtRWSet.readFieldObjectId(writeField) == currObjId) || - (evtRWSet.writeFieldExists(writeField) && evtRWSet.writeFieldObjectId(writeField) == currObjId)) { + if ((confRWSet.readFieldExists(writeField) && confRWSet.readFieldObjectId(writeField) == currObjId) || + (confRWSet.writeFieldExists(writeField) && confRWSet.writeFieldObjectId(writeField) == currObjId)) { // Remove this from the write set as we are tracking per memory location currRWSet.removeWriteField(writeField); return true; @@ -985,7 +985,7 @@ public class DPORStateReducer extends ListenerAdapter { Set currReadSet = currRWSet.getReadSet(); for(String readField : currReadSet) { int currObjId = currRWSet.readFieldObjectId(readField); - if (evtRWSet.writeFieldExists(readField) && evtRWSet.writeFieldObjectId(readField) == currObjId) { + if (confRWSet.writeFieldExists(readField) && confRWSet.writeFieldObjectId(readField) == currObjId) { // Remove this from the read set as we are tracking per memory location currRWSet.removeReadField(readField); return true; -- 2.34.1