summaryrefslogtreecommitdiffstats
path: root/org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/checkers/CloseOpenedFilesChecker.java
diff options
context:
space:
mode:
authorElliott Baron <ebaron@fedoraproject.org>2009-11-01 00:02:17 -0400
committerElliott Baron <ebaron@fedoraproject.org>2009-11-01 00:02:17 -0400
commit25eebecd10f8bfa9810e73f4efdc5b0be4a305a2 (patch)
treeaefdf9c9a5a1d9b878d647a2265c2bbfccb00d03 /org.eclipse.cdt.codan.extension/src/org/eclipse/cdt/codan/extension/checkers/CloseOpenedFilesChecker.java
parentf4fd87f6b05de1a67c5d2d09f1813ddce6de4879 (diff)
downloadcodan-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.java15
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;