Minor refactoring to the VFD info free call.

This commit is contained in:
Dana Robinson 2020-01-30 16:47:30 -08:00
parent 88b4c915e8
commit 1030115421

View File

@ -581,7 +581,7 @@ H5FD_free_driver_info(hid_t driver_id, const void *driver_info)
FUNC_ENTER_NOAPI(FAIL)
if(driver_id > 0) {
if(driver_id > 0 && driver_info) {
H5FD_class_t *driver;
/* Retrieve the driver for the ID */
@ -589,16 +589,14 @@ H5FD_free_driver_info(hid_t driver_id, const void *driver_info)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a driver ID")
/* Allow driver to free info or do it ourselves */
if(driver_info) {
if(driver->fapl_free) {
/* Free the const pointer */
/* Cast through uintptr_t to de-const memory */
if((driver->fapl_free)((void *)(uintptr_t)driver_info) < 0)
HGOTO_ERROR(H5E_VFL, H5E_CANTFREE, FAIL, "driver free request failed")
}
else
driver_info = H5MM_xfree_const(driver_info);
if(driver->fapl_free) {
/* Free the const pointer */
/* Cast through uintptr_t to de-const memory */
if((driver->fapl_free)((void *)(uintptr_t)driver_info) < 0)
HGOTO_ERROR(H5E_VFL, H5E_CANTFREE, FAIL, "driver free request failed")
}
else
driver_info = H5MM_xfree_const(driver_info);
}
done: