summaryrefslogtreecommitdiffstats
path: root/src/H5Eprivate.h
diff options
context:
space:
mode:
authorQuincey Koziol <koziol@hdfgroup.org>2004-09-09 02:37:02 (GMT)
committerQuincey Koziol <koziol@hdfgroup.org>2004-09-09 02:37:02 (GMT)
commiteb3e9ccd8ac3e1a69d0f9bc2c9e9f1c2b5108f21 (patch)
tree5a15644f3f46cb73b22605f3d03b36918bbbd065 /src/H5Eprivate.h
parent4389b976a5af4d4ca755f4ddab2e2e9ed861ea1e (diff)
downloadhdf5-eb3e9ccd8ac3e1a69d0f9bc2c9e9f1c2b5108f21.zip
hdf5-eb3e9ccd8ac3e1a69d0f9bc2c9e9f1c2b5108f21.tar.gz
hdf5-eb3e9ccd8ac3e1a69d0f9bc2c9e9f1c2b5108f21.tar.bz2
[svn-r9234] Purpose:
Code cleanup Description: Tweak recent "forward compatibility" changes to the H5E* API (which allowed for the old H5E API functions to remain unchanged) by allowing for the error stack callback function (H5E_auto_t) to also remain unchanged from the 1.6 branch. This required changing the H5E{get|set}_auto routines to have the old style H5E_auto_t type (which didn't have a stack ID parameter) and the new H5E{get|set}_auto_stack routines to have a newer "H5E_auto_stack_t" type (which has a stack ID parameter). This should make the H5E API changes as forwardly compatible as possible. One side-affect of this change was that it was impossible to determine if the current auto error callback was the old style (H5E_auto_t) or the new style (H5E_auto_stack_t) of callback, so a new API function (H5Eauto_is_stack) was adde to query this. Platforms tested: FreeBSD 4.10 (sleipnir) IRIX64 6.5 (modi4) h5committest
Diffstat (limited to 'src/H5Eprivate.h')
-rw-r--r--src/H5Eprivate.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/H5Eprivate.h b/src/H5Eprivate.h
index 4dbb670..9c5744f 100644
--- a/src/H5Eprivate.h
+++ b/src/H5Eprivate.h
@@ -44,7 +44,11 @@ typedef struct H5E_msg_t {
typedef struct H5E_t {
size_t nused; /* Num slots currently used in stack */
H5E_error_t slot[H5E_NSLOTS]; /* Array of error records */
- H5E_auto_t func; /* Function for 'automatic' error reporting */
+ hbool_t new_api; /* Indicate that the function pointer is for the new (stack) API or the old */
+ union {
+ H5E_auto_t func; /* Function for 'automatic' error reporting */
+ H5E_auto_stack_t func_stack; /* Function for 'automatic' error reporting */
+ } u;
void *auto_data; /* Callback data for 'automatic error reporting */
} H5E_t;