diff --git a/prism/src/prism/NondetModel.java b/prism/src/prism/NondetModel.java index 51736cf1..f6ba9b0f 100644 --- a/prism/src/prism/NondetModel.java +++ b/prism/src/prism/NondetModel.java @@ -213,7 +213,10 @@ public class NondetModel extends ProbModel // work out number of reachable states numStates = JDD.GetNumMinterms(reach, allDDRowVars.n()); - // build odd + // build odd, clear old one + if (odd != null) { + ODDUtils.ClearODD(odd); + } odd = ODDUtils.BuildODD(reach, allDDRowVars); } diff --git a/prism/src/prism/ProbModel.java b/prism/src/prism/ProbModel.java index 5d968c50..4686c1f9 100644 --- a/prism/src/prism/ProbModel.java +++ b/prism/src/prism/ProbModel.java @@ -505,7 +505,10 @@ public class ProbModel implements Model // work out number of reachable states numStates = Math.pow(2, allDDRowVars.n()); - // build odd + // build odd, clear old one + if (odd != null) { + ODDUtils.ClearODD(odd); + } odd = ODDUtils.BuildODD(reach, allDDRowVars); } @@ -522,7 +525,10 @@ public class ProbModel implements Model // work out number of reachable states numStates = JDD.GetNumMinterms(reach, allDDRowVars.n()); - // build odd + // build odd, clear old one + if (odd != null) { + ODDUtils.ClearODD(odd); + } odd = ODDUtils.BuildODD(reach, allDDRowVars); } @@ -928,5 +934,11 @@ public class ProbModel implements Model JDD.Deref(transPerAction[i]); } } + + if (odd != null) { + // clear ODD + ODDUtils.ClearODD(odd); + odd = null; + } } }