diff options
author | Neil Fortner <nfortne2@hdfgroup.org> | 2012-07-25 21:50:22 (GMT) |
---|---|---|
committer | Neil Fortner <nfortne2@hdfgroup.org> | 2012-07-25 21:50:22 (GMT) |
commit | c04144fb39b6d7a489c37e89ac8a0240991026a6 (patch) | |
tree | 8f2d927263672bd7b524673a8943d1a982a8a470 /src/H5Oainfo.c | |
parent | b5ef63b550d4d1149aebb0c46aebc7df672427aa (diff) | |
download | hdf5-c04144fb39b6d7a489c37e89ac8a0240991026a6.zip hdf5-c04144fb39b6d7a489c37e89ac8a0240991026a6.tar.gz hdf5-c04144fb39b6d7a489c37e89ac8a0240991026a6.tar.bz2 |
[svn-r22601] Purpose: Fix HDFFV-5853
Description:
When jumping out from between H5_BEGIN_TAG and H5_END_TAG macros using
HGOTO_ERROR or HGOTO_DONE, the previous metadata tag is not reset on the dxpl.
This could cause problems when, for example, calling H5Ocopy within an
H5Literate callback.
Added new HGOTO_ERROR_TAG and HGOTO_DONE_TAG macros which must be used in place
of the above between H5_BEGIN_TAG and H5_END_TAG.
Tested:
jam, koala, ostrich (h5committest), durandal
Diffstat (limited to 'src/H5Oainfo.c')
-rw-r--r-- | src/H5Oainfo.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/H5Oainfo.c b/src/H5Oainfo.c index b207ea2..ad99be0 100644 --- a/src/H5Oainfo.c +++ b/src/H5Oainfo.c @@ -428,12 +428,12 @@ H5O_ainfo_copy_file(H5F_t *file_src, void *mesg_src, H5F_t *file_dst, if(H5F_addr_defined(ainfo_src->fheap_addr)) { /* copy dense attribute */ - + /* Set copied metadata tag */ H5_BEGIN_TAG(dxpl_id, H5AC__COPIED_TAG, NULL); if(H5A_dense_create(file_dst, dxpl_id, ainfo_dst) < 0) - HGOTO_ERROR(H5E_OHDR, H5E_CANTINIT, NULL, "unable to create dense storage for attributes") + HGOTO_ERROR_TAG(H5E_OHDR, H5E_CANTINIT, NULL, "unable to create dense storage for attributes") /* Reset metadata tag */ H5_END_TAG(NULL); |