diff --git a/prism/src/hybrid/PH_StochCumulReward.cc b/prism/src/hybrid/PH_StochCumulReward.cc index 30a4ff1f..765d7ee0 100644 --- a/prism/src/hybrid/PH_StochCumulReward.cc +++ b/prism/src/hybrid/PH_StochCumulReward.cc @@ -336,7 +336,8 @@ jdouble time // time bound if (diags_dist) delete diags_dist; if (soln) delete[] soln; if (soln2) delete[] soln2; - + if (fgw.weights) delete[] fgw.weights; + return ptr_to_jlong(sum); } diff --git a/prism/src/hybrid/PH_StochTransient.cc b/prism/src/hybrid/PH_StochTransient.cc index 4b57bc30..b85670a0 100644 --- a/prism/src/hybrid/PH_StochTransient.cc +++ b/prism/src/hybrid/PH_StochTransient.cc @@ -305,7 +305,8 @@ jdouble time // time bound // nb: we *do* free soln (which was originally init) if (soln) delete[] soln; if (soln2) delete[] soln2; - + if (fgw.weights) delete[] fgw.weights; + return ptr_to_jlong(sum); } diff --git a/prism/src/mtbdd/PM_StochBoundedUntil.cc b/prism/src/mtbdd/PM_StochBoundedUntil.cc index 24c275a1..41442dd9 100644 --- a/prism/src/mtbdd/PM_StochBoundedUntil.cc +++ b/prism/src/mtbdd/PM_StochBoundedUntil.cc @@ -331,7 +331,6 @@ jlong __jlongpointer mu // probs for multiplying } Cudd_RecursiveDeref(ddman, diags); Cudd_RecursiveDeref(ddman, sol); - if (fgw.weights) delete[] fgw.weights; return ptr_to_jlong(sum); diff --git a/prism/src/mtbdd/PM_StochCumulReward.cc b/prism/src/mtbdd/PM_StochCumulReward.cc index 63cc003f..6170f246 100644 --- a/prism/src/mtbdd/PM_StochCumulReward.cc +++ b/prism/src/mtbdd/PM_StochCumulReward.cc @@ -244,7 +244,8 @@ jdouble time // time bound Cudd_RecursiveDeref(ddman, q); Cudd_RecursiveDeref(ddman, diags); Cudd_RecursiveDeref(ddman, sol); - + if (fgw.weights) delete[] fgw.weights; + return ptr_to_jlong(sum); } diff --git a/prism/src/mtbdd/PM_StochTransient.cc b/prism/src/mtbdd/PM_StochTransient.cc index 8fdc01ff..8d99930b 100644 --- a/prism/src/mtbdd/PM_StochTransient.cc +++ b/prism/src/mtbdd/PM_StochTransient.cc @@ -312,7 +312,8 @@ jdouble time // time Cudd_RecursiveDeref(ddman, sol); // nb: we deref init, even though it is passed in as a param Cudd_RecursiveDeref(ddman, init); - + if (fgw.weights) delete[] fgw.weights; + return ptr_to_jlong(sum); } diff --git a/prism/src/sparse/PS_StochCumulReward.cc b/prism/src/sparse/PS_StochCumulReward.cc index b906a6b1..845074a5 100644 --- a/prism/src/sparse/PS_StochCumulReward.cc +++ b/prism/src/sparse/PS_StochCumulReward.cc @@ -362,6 +362,7 @@ jdouble time // time bound if (diags_dist) delete diags_dist; if (soln) delete[] soln; if (soln2) delete[] soln2; + if (fgw.weights) delete[] fgw.weights; return ptr_to_jlong(sum); } diff --git a/prism/src/sparse/PS_StochTransient.cc b/prism/src/sparse/PS_StochTransient.cc index 7d503c53..3a2f0e30 100644 --- a/prism/src/sparse/PS_StochTransient.cc +++ b/prism/src/sparse/PS_StochTransient.cc @@ -330,6 +330,7 @@ jdouble time // time bound // nb: we *do* free soln (which was originally init) if (soln) delete[] soln; if (soln2) delete[] soln2; + if (fgw.weights) delete[] fgw.weights; return ptr_to_jlong(sum); }