summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJordan Henderson <jhenderson@hdfgroup.org>2017-03-14 15:15:03 (GMT)
committerJordan Henderson <jhenderson@hdfgroup.org>2017-03-14 15:15:03 (GMT)
commit0b755bc2c5c04d72a293d7e0391c2be8149cda8a (patch)
treeab1bfe19d08c10539d4c04d8ef02f66d39a950e3
parentfba658662b64b169c0664a6f66a29d27b36be0f4 (diff)
parent73d4fea67c676f22ac72e9d45f7610ef0692ffed (diff)
downloadhdf5-0b755bc2c5c04d72a293d7e0391c2be8149cda8a.zip
hdf5-0b755bc2c5c04d72a293d7e0391c2be8149cda8a.tar.gz
hdf5-0b755bc2c5c04d72a293d7e0391c2be8149cda8a.tar.bz2
Merge pull request #331 in HDFFV/hdf5 from ~JHENDERSON/hdf5:plugin_termination_fix to vol
* commit '73d4fea67c676f22ac72e9d45f7610ef0692ffed': 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() */