summaryrefslogtreecommitdiffstats
path: root/src/H5Gloc.c
diff options
context:
space:
mode:
authorMohamad Chaarawi <chaarawi@hdfgroup.org>2014-09-05 21:36:55 (GMT)
committerMohamad Chaarawi <chaarawi@hdfgroup.org>2014-09-05 21:36:55 (GMT)
commit05d51c036140f94a07efb75aab9675b3b4bd5ef0 (patch)
tree5fe046db1c355df5c771077164ba6d6c1f272866 /src/H5Gloc.c
parentf2e6cec0728a75f5982e3b6d91f0ce823d1206a6 (diff)
downloadhdf5-05d51c036140f94a07efb75aab9675b3b4bd5ef0.zip
hdf5-05d51c036140f94a07efb75aab9675b3b4bd5ef0.tar.gz
hdf5-05d51c036140f94a07efb75aab9675b3b4bd5ef0.tar.bz2
[svn-r25575] cleanup H5I usage in VOL by removing the use of the aux pointer and
make a higher level wrapper object around all VOL objects that includes the VOL information.
Diffstat (limited to 'src/H5Gloc.c')
-rw-r--r--src/H5Gloc.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/H5Gloc.c b/src/H5Gloc.c
index 4503f15..3786967 100644
--- a/src/H5Gloc.c
+++ b/src/H5Gloc.c
@@ -179,8 +179,7 @@ H5G_loc_real(void *obj, H5I_type_t type, H5G_loc_t *loc)
H5T_t *dt = NULL;
/* Get the actual datatype object if the VOL object is set */
- if(NULL == (dt = (H5T_t *)H5T_get_named_type((const H5T_t *)obj)))
- dt = (H5T_t *) obj;
+ dt = (H5T_t *)H5T_get_actual_type((H5T_t *)obj);
if(NULL == (loc->oloc = H5T_oloc(dt)))
HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "unable to get object location of datatype")
@@ -236,11 +235,16 @@ done:
herr_t
H5G_loc(hid_t loc_id, H5G_loc_t *loc)
{
+ void *obj = NULL;
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(FAIL)
- if(H5G_loc_real(H5I_object(loc_id), H5I_get_type(loc_id), loc) < 0)
+ /* get the object */
+ if(NULL == (obj = H5VL_object(loc_id)))
+ HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid identifier")
+
+ if(H5G_loc_real(obj, H5I_get_type(loc_id), loc) < 0)
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "not a file or file object")
done: