diff options
author | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2012-07-10 14:51:43 (GMT) |
---|---|---|
committer | Mohamad Chaarawi <chaarawi@hdfgroup.org> | 2012-07-10 14:51:43 (GMT) |
commit | 041e56526287225fe5675a5a2096692749cdf66d (patch) | |
tree | ad15077f9d511d31e37f8e784c87533156748c97 /src/H5Gname.c | |
parent | e582da571d5ac665351768c9c4ae5fb3f863c9cc (diff) | |
download | hdf5-041e56526287225fe5675a5a2096692749cdf66d.zip hdf5-041e56526287225fe5675a5a2096692749cdf66d.tar.gz hdf5-041e56526287225fe5675a5a2096692749cdf66d.tar.bz2 |
[svn-r22540] fix bug in H5R_get_name
more named datatype bugs:
- fix bug in Name replace traversal callback
- fix bug in H5G_test
A stable version finally..
Diffstat (limited to 'src/H5Gname.c')
-rw-r--r-- | src/H5Gname.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/H5Gname.c b/src/H5Gname.c index 381518a..eb9cf10 100644 --- a/src/H5Gname.c +++ b/src/H5Gname.c @@ -819,12 +819,21 @@ H5G_name_replace_cb(void *obj_ptr, hid_t obj_id, void *key) break; case H5I_DATATYPE: - /* Avoid non-named datatypes */ - if(!H5T_is_named((H5T_t *)obj_ptr)) - HGOTO_DONE(SUCCEED) /* Do not exit search over IDs */ + { + H5T_t *type = NULL; - oloc = H5T_oloc((H5T_t *)obj_ptr); - obj_path = H5T_nameof((H5T_t *)obj_ptr); + /* Get the actual datatype object that should be the vol_obj */ + if(NULL == (type = (H5T_t *)H5T_get_named_type((H5T_t*)obj_ptr))) + HGOTO_DONE(SUCCEED) /* Do not exit search over IDs */ + + /* Avoid non-named datatypes */ + if(!H5T_is_named(type)) + HGOTO_DONE(SUCCEED) /* Do not exit search over IDs */ + + oloc = H5T_oloc(type); + obj_path = H5T_nameof(type); + break; + } break; case H5I_UNINIT: |