summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJordan Henderson <jhenderson@hdfgroup.org>2017-03-10 17:39:08 (GMT)
committerJordan Henderson <jhenderson@hdfgroup.org>2017-03-10 17:39:08 (GMT)
commit73d4fea67c676f22ac72e9d45f7610ef0692ffed (patch)
treeab1bfe19d08c10539d4c04d8ef02f66d39a950e3
parentfba658662b64b169c0664a6f66a29d27b36be0f4 (diff)
downloadhdf5-73d4fea67c676f22ac72e9d45f7610ef0692ffed.zip
hdf5-73d4fea67c676f22ac72e9d45f7610ef0692ffed.tar.gz
hdf5-73d4fea67c676f22ac72e9d45f7610ef0692ffed.tar.bz2
Call terminate callback upon freeing H5VL class
-rw-r--r--src/H5VL.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/H5VL.c b/src/H5VL.c
index b4d2556..efa1be0 100644
--- a/src/H5VL.c
+++ b/src/H5VL.c
@@ -190,14 +190,23 @@ H5VL_term_package(void)
static herr_t
H5VL_free_cls(H5VL_class_t *cls)
{
- FUNC_ENTER_NOAPI_NOINIT_NOERR
+ herr_t ret_value = SUCCEED;
+
+ FUNC_ENTER_NOAPI_NOINIT
/* Sanity check */
HDassert(cls);
+ /* XXX: Need to retrieve the VOL termination property list for the
+ * terminate operation - JTH
+ */
+ if (cls->terminate && cls->terminate(H5P_DEFAULT) < 0)
+ HGOTO_ERROR(H5E_VOL, H5E_CANTCLOSEOBJ, FAIL, "VOL plugin did not terminate cleanly")
+
H5MM_free(cls);
- FUNC_LEAVE_NOAPI(SUCCEED)
+done:
+ FUNC_LEAVE_NOAPI(ret_value)
} /* end H5VL_free_cls() */