Browse Source

NondetModelChecker.checkExpressionMultiObjective(): BDD cleanup when computeMultiReachProbs throws Exception

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@11800 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Joachim Klein 10 years ago
parent
commit
048017bb24
  1. 7
      prism/src/prism/NondetModelChecker.java

7
prism/src/prism/NondetModelChecker.java

@ -643,10 +643,12 @@ public class NondetModelChecker extends NonProbModelChecker
modelProduct.trans01 = tmptrans01; modelProduct.trans01 = tmptrans01;
} }
Object value;
try {
// Do multi-objective computation // Do multi-objective computation
Object value = mcMo.computeMultiReachProbs(modelProduct, mcLtl, transRewardsListProduct, modelProduct.getStart(), targetDDs, multitargetDDs, multitargetIDs, opsAndBounds,
value = mcMo.computeMultiReachProbs(modelProduct, mcLtl, transRewardsListProduct, modelProduct.getStart(), targetDDs, multitargetDDs, multitargetIDs, opsAndBounds,
conflictformulae > 1); conflictformulae > 1);
} finally {
// Deref, clean up // Deref, clean up
if (ddStateIndex != null) if (ddStateIndex != null)
JDD.Deref(ddStateIndex); JDD.Deref(ddStateIndex);
@ -663,6 +665,7 @@ public class NondetModelChecker extends NonProbModelChecker
if (multitargetDDs != null) if (multitargetDDs != null)
for (JDDNode t : multitargetDDs) for (JDDNode t : multitargetDDs)
JDD.Deref(t); JDD.Deref(t);
}
if (value instanceof TileList) { if (value instanceof TileList) {
if (opsAndBounds.numberOfNumerical() == 2) { if (opsAndBounds.numberOfNumerical() == 2) {

Loading…
Cancel
Save