summaryrefslogtreecommitdiffstats
path: root/src/H5Gloc.c
diff options
context:
space:
mode:
authorMohamad Chaarawi <chaarawi@hdfgroup.org>2012-03-22 14:40:08 (GMT)
committerMohamad Chaarawi <chaarawi@hdfgroup.org>2012-03-22 14:40:08 (GMT)
commitd17a7fa26e972714082c5061f29f6b9335e189f4 (patch)
treeddc656ce236b5bff340f7d686e975ce7f24da55a /src/H5Gloc.c
parent10dd81d6bf70d17a573f8202fbf375e6badd18b3 (diff)
downloadhdf5-d17a7fa26e972714082c5061f29f6b9335e189f4.zip
hdf5-d17a7fa26e972714082c5061f29f6b9335e189f4.tar.gz
hdf5-d17a7fa26e972714082c5061f29f6b9335e189f4.tar.bz2
[svn-r22119] Changes:
- add VOL implementation for H5O, H5D, and H5T functions - update the VOL interface with H5VLget routines - make upper level IDs of Type H5I_XXX_PUBLIC - bug fixes Comments: - some routines still don't go through VOL but have a workaround so they don't have to at the moment.
Diffstat (limited to 'src/H5Gloc.c')
-rw-r--r--src/H5Gloc.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/H5Gloc.c b/src/H5Gloc.c
index f0c2a9c..b29776f 100644
--- a/src/H5Gloc.c
+++ b/src/H5Gloc.c
@@ -161,11 +161,19 @@ H5G_loc(hid_t id, H5G_loc_t *loc)
{
H5I_t *uid_info; /* user id structure */
hid_t loc_id;
+ H5I_type_t id_type;
herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(FAIL)
- if (H5I_UID == H5I_get_type(id)) {
+ id_type = H5I_get_type(id);
+ /* get the actual ID from an upper ID level */
+ /* MSC - this is a workaround to allow the test suite to pass and
+ at some point needs to be removed once all high level operations
+ that needs to go through the VOL actually go through the VOL*/
+ if (H5I_FILE_PUBLIC == id_type || H5I_GROUP_PUBLIC == id_type ||
+ H5I_DATASET_PUBLIC == id_type || H5I_DATATYPE_PUBLIC == id_type ||
+ H5I_ATTRIBUTE_PUBLIC == id_type) {
if(NULL == (uid_info = (H5I_t *)H5I_object(id)))
HGOTO_ERROR(H5E_ARGS, H5E_BADTYPE, FAIL, "invalid user identifier")
loc_id = uid_info->obj_id;
@@ -174,7 +182,6 @@ H5G_loc(hid_t id, H5G_loc_t *loc)
loc_id = id;
}
switch(H5I_get_type(loc_id)) {
- case H5I_UID:
case H5I_FILE:
{
H5F_t *f;