From: rtrimana Date: Mon, 21 Oct 2019 20:51:52 +0000 (-0700) Subject: Adding more restrictions in conflict analysis: not to analyze fields from the Groovy... X-Git-Url: http://plrg.eecs.uci.edu/git/?p=jpf-core.git;a=commitdiff_plain;h=92913d69d358e98252d0278b5b96d7973566a958 Adding more restrictions in conflict analysis: not to analyze fields from the Groovy library. --- diff --git a/src/main/gov/nasa/jpf/listener/StateReducer.java b/src/main/gov/nasa/jpf/listener/StateReducer.java index 5744868..ffeca20 100644 --- a/src/main/gov/nasa/jpf/listener/StateReducer.java +++ b/src/main/gov/nasa/jpf/listener/StateReducer.java @@ -363,8 +363,17 @@ public class StateReducer extends ListenerAdapter { !fieldClass.startsWith("sun") && !fieldClass.startsWith("com") && !fieldClass.startsWith("gov") && - !fieldClass.startsWith("groovy")) { - analyzeReadWriteAccesses(executedInsn, fieldClass); + !fieldClass.startsWith("groovy") && + // and fields generated for the Groovy library + !fieldClass.endsWith("stMC") && + !fieldClass.endsWith("callSiteArray") && + !fieldClass.endsWith("metaClass") && + !fieldClass.endsWith("staticClassInfo") && + !fieldClass.endsWith("__constructor__")) { + // Analyze only after being initialized + if (isInitialized) { + analyzeReadWriteAccesses(executedInsn, fieldClass); + } } } // Analyze conflicts from next instructions @@ -376,7 +385,13 @@ public class StateReducer extends ListenerAdapter { !fieldClass.startsWith("sun") && !fieldClass.startsWith("com") && !fieldClass.startsWith("gov") && - !fieldClass.startsWith("groovy")) { + !fieldClass.startsWith("groovy") && + // and fields generated for the Groovy library + !fieldClass.endsWith("stMC") && + !fieldClass.endsWith("callSiteArray") && + !fieldClass.endsWith("metaClass") && + !fieldClass.endsWith("staticClassInfo") && + !fieldClass.endsWith("__constructor__")) { // Check for conflict (go backward from currentChoice and get the first conflict) // If the current event has conflicts with multiple events, then these will be detected // one by one as this recursively checks backward when backtrack set is revisited and executed.