From ce43b7d7728a02aa48b1831cbfb6714b04faaf7d Mon Sep 17 00:00:00 2001 From: Ed Hartnett Date: Tue, 13 Nov 2018 05:58:54 -0700 Subject: [PATCH] free hdf5-specific var info and cleanup --- libsrc4/nc4internal.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/libsrc4/nc4internal.c b/libsrc4/nc4internal.c index d7838d2b7..31782bfab 100644 --- a/libsrc4/nc4internal.c +++ b/libsrc4/nc4internal.c @@ -1182,7 +1182,6 @@ var_free(NC_VAR_INFO_T *var) return retval; ncindexfree(var->att); - /* Free some things that may be allocated. */ /* Free some things that may be allocated. */ if (var->chunksizes) free(var->chunksizes); @@ -1233,6 +1232,10 @@ var_free(NC_VAR_INFO_T *var) if (var->params) free(var->params); + /* Delete any format-specific info. */ + if (var->format_var_info) + free(var->format_var_info); + /* Delete the var. */ free(var); @@ -1242,26 +1245,24 @@ var_free(NC_VAR_INFO_T *var) /** * @internal Delete a var, and free the memory. * - * @param grp the containing group + * @param grp Pointer to the strct for the containing group. * @param var Pointer to the var info struct of var to delete. * * @return ::NC_NOERR No error. * @author Ed Hartnett, Dennis Heimbigner */ int -nc4_var_list_del(NC_GRP_INFO_T* grp, NC_VAR_INFO_T *var) +nc4_var_list_del(NC_GRP_INFO_T *grp, NC_VAR_INFO_T *var) { int i; - if(var == NULL) - return NC_NOERR; + assert(var && grp); /* Remove from lists */ - if(grp) { - i = ncindexfind(grp->vars,(NC_OBJ*)var); - if(i >= 0) - ncindexidel(grp->vars, i); - } + i = ncindexfind(grp->vars, (NC_OBJ *)var); + if (i >= 0) + ncindexidel(grp->vars, i); + return var_free(var); }