diff options
author | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2012-07-09 22:20:16 (GMT) |
---|---|---|
committer | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2012-07-09 22:20:16 (GMT) |
commit | e582da571d5ac665351768c9c4ae5fb3f863c9cc (patch) | |
tree | df8e40912c9e21c5addbed77f6c2f43482584c84 /src/H5Gloc.c | |
parent | 843ccf86dd147e245bab269520741b0f103b4d6b (diff) | |
download | hdf5-e582da571d5ac665351768c9c4ae5fb3f863c9cc.zip hdf5-e582da571d5ac665351768c9c4ae5fb3f863c9cc.tar.gz hdf5-e582da571d5ac665351768c9c4ae5fb3f863c9cc.tar.bz2 |
[svn-r22532] fix more named datatype issues.
move the dataset ID registration to H5Dint where the term_interface func is located
Diffstat (limited to 'src/H5Gloc.c')
-rw-r--r-- | src/H5Gloc.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/src/H5Gloc.c b/src/H5Gloc.c index 58ae55a..2a83f15 100644 --- a/src/H5Gloc.c +++ b/src/H5Gloc.c @@ -174,11 +174,19 @@ H5G_loc_real(void *obj, H5I_type_t type, H5G_loc_t *loc) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "unable to get path of group") break; case H5I_DATATYPE: - if(NULL == (loc->oloc = H5T_oloc((H5T_t *)obj))) - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "unable to get object location of datatype") - if(NULL == (loc->path = H5T_nameof((H5T_t *)obj))) - HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "unable to get path of datatype") - break; + { + 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; + + if(NULL == (loc->oloc = H5T_oloc(dt))) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "unable to get object location of datatype") + if(NULL == (loc->path = H5T_nameof(dt))) + HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "unable to get path of datatype") + break; + } case H5I_DATASET: if(NULL == (loc->oloc = H5D_oloc((H5D_t *)obj))) HGOTO_ERROR(H5E_ARGS, H5E_BADVALUE, FAIL, "unable to get object location of dataset") |