summaryrefslogtreecommitdiffstats
path: root/src/H5Ddeprec.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/H5Ddeprec.c')
-rw-r--r--src/H5Ddeprec.c9
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)