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/H5private.h | |
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/H5private.h')
-rw-r--r-- | src/H5private.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/H5private.h b/src/H5private.h index 39ccb52..d30298f 100644 --- a/src/H5private.h +++ b/src/H5private.h @@ -2291,7 +2291,8 @@ func_init_failed: \ /* Close Function */ \ } -/* Macro to begin/end tagging (when FUNC_ENTER_*TAG macros are insufficient) */ +/* Macro to begin/end tagging (when FUNC_ENTER_*TAG macros are insufficient). + * Make sure to use HGOTO_ERROR_TAG and HGOTO_DONE_TAG between these macros! */ #define H5_BEGIN_TAG(dxpl, tag, err) { \ haddr_t prv_tag = HADDR_UNDEF; \ hid_t my_dxpl_id = dxpl; \ |