diff options
Diffstat (limited to 'src/H5Ddeprec.c')
-rw-r--r-- | src/H5Ddeprec.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/H5Ddeprec.c b/src/H5Ddeprec.c index 04ab2cc..0a71b5c 100644 --- a/src/H5Ddeprec.c +++ b/src/H5Ddeprec.c @@ -306,6 +306,7 @@ done: herr_t H5Dvlen_reclaim(hid_t type_id, hid_t space_id, hid_t dxpl_id, void *buf) { + H5T_t *type; H5S_t *space; /* Dataspace for iteration */ herr_t ret_value; /* Return value */ @@ -313,8 +314,10 @@ H5Dvlen_reclaim(hid_t type_id, hid_t space_id, hid_t dxpl_id, void *buf) H5TRACE4("e", "iii*x", type_id, space_id, dxpl_id, buf); /* Check args */ - if (H5I_DATATYPE != H5I_get_type(type_id) || buf == NULL) - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "invalid argument"); + if (buf == NULL) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "'buf' pointer is NULL"); + if (NULL == (type = (H5T_t *)H5I_object_verify(type_id, H5I_DATATYPE))) + HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid datatype"); if (NULL == (space = (H5S_t *)H5I_object_verify(space_id, H5I_DATASPACE))) HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid dataspace"); if (!(H5S_has_extent(space))) @@ -330,7 +333,7 @@ H5Dvlen_reclaim(hid_t type_id, hid_t space_id, hid_t dxpl_id, void *buf) H5CX_set_dxpl(dxpl_id); /* Call internal routine */ - ret_value = H5T_reclaim(type_id, space, buf); + ret_value = H5T_reclaim(type, space, buf); done: FUNC_LEAVE_API(ret_value) |