From ebc9a3224046c63080f5d7e0c9c891143ea3f47c Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Tue, 7 Nov 2006 08:35:09 +0000 Subject: [PATCH] Added convenience function for double vector deallocation. git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@122 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/include/dv.h | 3 ++- prism/src/dv/dv.cc | 13 ++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/prism/include/dv.h b/prism/include/dv.h index 79fba2a4..f9f48d28 100644 --- a/prism/include/dv.h +++ b/prism/include/dv.h @@ -71,7 +71,8 @@ double sum_double_vector_over_bdd(DdManager *ddman, double *vec, DdNode *filter, double sum_double_vector_over_mtbdd(DdManager *ddman, double *vec, DdNode *mult, DdNode **vars, int num_vars, ODDNode *odd); DistVector *double_vector_to_dist(double *v, int n); -void free_dist_vector(DistVector *dv); +void free_dist_vector(DistVector *&dv); +void free_dv_or_dist_vector(double *&v, DistVector *&dv); //------------------------------------------------------------------------------ diff --git a/prism/src/dv/dv.cc b/prism/src/dv/dv.cc index da8bd302..5a54c13c 100644 --- a/prism/src/dv/dv.cc +++ b/prism/src/dv/dv.cc @@ -455,11 +455,22 @@ DistVector *double_vector_to_dist(double *v, int n) // free distinct vector struct -void free_dist_vector(DistVector *dv) +void free_dist_vector(DistVector *&dv) { free(dv->dist); free(dv->ptrs); free(dv); + dv = NULL; +} + +//------------------------------------------------------------------------------ + +// delete double array, distinct vector struct, or both + +void free_dv_or_dist_vector(double *&v, DistVector *&dv) +{ + if (v) { free(v); v = NULL; } + if (dv) { free_dist_vector(dv); dv = NULL; } } //------------------------------------------------------------------------------