diff options
author | Elliott Baron <ebaron@fedoraproject.org> | 2009-11-01 00:02:17 -0400 |
---|---|---|
committer | Elliott Baron <ebaron@fedoraproject.org> | 2009-11-01 00:02:17 -0400 |
commit | 25eebecd10f8bfa9810e73f4efdc5b0be4a305a2 (patch) | |
tree | aefdf9c9a5a1d9b878d647a2265c2bbfccb00d03 /org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/checkers/CloseOpenedFilesChecker.java | |
parent | f4fd87f6b05de1a67c5d2d09f1813ddce6de4879 (diff) | |
download | codan-25eebecd10f8bfa9810e73f4efdc5b0be4a305a2.tar.gz codan-25eebecd10f8bfa9810e73f4efdc5b0be4a305a2.tar.xz codan-25eebecd10f8bfa9810e73f4efdc5b0be4a305a2.zip |
Implemented Quine-McCluskey algorithm to join execution states. Property simulation working!
* org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/ESSimplifier.java: New file.
* org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/ESTruthTable.java: New file.
* org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/ExecutionState.java: Join execution states.
* org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/ITruthTable.java: New file.
* org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/Minterm.java: New file.
* org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/QuineMcCluskeySimplifier.java: New file.
* org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/SymbolicState.java: Implement equals and hashCode.
* org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/checkers/CloseOpenedFilesChecker.java: Use PropSim.
Diffstat (limited to 'org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/checkers/CloseOpenedFilesChecker.java')
-rw-r--r-- | org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/checkers/CloseOpenedFilesChecker.java | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/checkers/CloseOpenedFilesChecker.java b/org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/checkers/CloseOpenedFilesChecker.java index 5ea8e79..491a481 100644 --- a/org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/checkers/CloseOpenedFilesChecker.java +++ b/org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/checkers/CloseOpenedFilesChecker.java @@ -210,7 +210,7 @@ public class CloseOpenedFilesChecker extends AbstractIndexAstChecker { } private Set<SymbolicState> group(Set<SymbolicState> ss) { - return groupPSA(ss); + return groupPropSim(ss); } private Set<SymbolicState> groupPSA(Set<SymbolicState> ss) { @@ -236,12 +236,15 @@ public class CloseOpenedFilesChecker extends AbstractIndexAstChecker { for (PropertyState p : statesPerProperty.keySet()) { Set<PropertyState> ps = new HashSet<PropertyState>(); ps.add(p); - ExecutionState es = new ExecutionState(); - for (ExecutionState e : statesPerProperty.get(p)) { - es.join(e); + Set<ExecutionState> es = statesPerProperty.get(p); + if (es.size() > 1) { + // Join execution states in this set + es = ExecutionState.join(es); + } + for (ExecutionState e : es) { + SymbolicState s = new SymbolicState(ps, e); + ret.add(s); } - SymbolicState s = new SymbolicState(ps, es); - ret.add(s); } return ret; |