[svn-r7364] Purpose:

Code cleanup

Description:
    Ran lint over code & cleaned up warnings.

Platforms tested:
    FreeBSD 4.8 (sleipnir)
    too small of changes to require h5committest
This commit is contained in:
Quincey Koziol 2003-08-14 08:44:59 -05:00
parent f29e3e1097
commit 54949c497a
4 changed files with 147 additions and 145 deletions

282
src/H5E.c
View File

@ -97,22 +97,22 @@ static herr_t H5E_init_interface (void);
static H5E_cls_t *H5E_register_class(const char *cls_name, const char *lib_name, static H5E_cls_t *H5E_register_class(const char *cls_name, const char *lib_name,
const char *version); const char *version);
static herr_t H5E_unregister_class(H5E_cls_t *cls); static herr_t H5E_unregister_class(H5E_cls_t *cls);
static ssize_t H5E_get_class_name(H5E_cls_t *cls, char *name, size_t size); static ssize_t H5E_get_class_name(const H5E_cls_t *cls, char *name, size_t size);
static int H5E_close_msg_cb(void *obj_ptr, hid_t obj_id, void *key); static int H5E_close_msg_cb(void *obj_ptr, hid_t obj_id, void *key);
static herr_t H5E_close_msg(H5E_msg_t *err); static herr_t H5E_close_msg(H5E_msg_t *err);
static H5E_msg_t *H5E_create_msg(H5E_cls_t *cls, H5E_type_t msg_type, const char *msg); static H5E_msg_t *H5E_create_msg(H5E_cls_t *cls, H5E_type_t msg_type, const char *msg);
static ssize_t H5E_get_msg(H5E_msg_t *msg_ptr, H5E_type_t *type, char *msg, size_t size); static ssize_t H5E_get_msg(const H5E_msg_t *msg_ptr, H5E_type_t *type, char *msg, size_t size);
static H5E_t *H5E_get_current_stack(void); static H5E_t *H5E_get_current_stack(void);
static herr_t H5E_set_current_stack(H5E_t *estack); static herr_t H5E_set_current_stack(H5E_t *estack);
static herr_t H5E_close_stack(H5E_t *err_stack); static herr_t H5E_close_stack(H5E_t *err_stack);
static int H5E_get_num(H5E_t *err_stack); static int H5E_get_num(const H5E_t *err_stack);
static herr_t H5E_pop(H5E_t *err_stack, size_t count); static herr_t H5E_pop(H5E_t *err_stack, size_t count);
static herr_t H5E_clear_entries(H5E_t *estack, unsigned nentries); static herr_t H5E_clear_entries(H5E_t *estack, unsigned nentries);
static herr_t H5E_print(H5E_t *estack, FILE *stream); static herr_t H5E_print(const H5E_t *estack, FILE *stream);
static herr_t H5E_walk (H5E_t *estack, H5E_direction_t direction, H5E_walk_t func, static herr_t H5E_walk (const H5E_t *estack, H5E_direction_t direction, H5E_walk_t func,
void *client_data); void *client_data);
static herr_t H5E_walk_cb(unsigned n, H5E_error_t *err_desc, void *client_data); static herr_t H5E_walk_cb(unsigned n, const H5E_error_t *err_desc, void *client_data);
static herr_t H5E_get_auto(H5E_t *estack, H5E_auto_t *func, void **client_data); static herr_t H5E_get_auto(const H5E_t *estack, H5E_auto_t *func, void **client_data);
static herr_t H5E_set_auto(H5E_t *estack, H5E_auto_t func, void *client_data); static herr_t H5E_set_auto(H5E_t *estack, H5E_auto_t func, void *client_data);
/*-------------------------------------------------------------------------- /*--------------------------------------------------------------------------
@ -135,20 +135,20 @@ H5E_init_interface(void)
char lib_vers[128]; /* Buffer to constructu library version within */ char lib_vers[128]; /* Buffer to constructu library version within */
herr_t ret_value = SUCCEED; /* Return value */ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOINIT(H5E_init_interface); FUNC_ENTER_NOINIT(H5E_init_interface)
/* Initialize the atom group for the error class IDs */ /* Initialize the atom group for the error class IDs */
if(H5I_init_group(H5I_ERROR_CLASS, H5I_ERRCLS_HASHSIZE, H5E_RESERVED_ATOMS, if(H5I_init_group(H5I_ERROR_CLASS, H5I_ERRCLS_HASHSIZE, H5E_RESERVED_ATOMS,
(H5I_free_t)H5E_unregister_class)<0) (H5I_free_t)H5E_unregister_class)<0)
HGOTO_ERROR(H5E_ATOM, H5E_CANTINIT, FAIL, "unable to initialize ID group"); HGOTO_ERROR(H5E_ATOM, H5E_CANTINIT, FAIL, "unable to initialize ID group")
/* Initialize the atom group for the major error IDs */ /* Initialize the atom group for the major error IDs */
if(H5I_init_group(H5I_ERROR_MSG, H5I_ERRMSG_HASHSIZE, H5E_RESERVED_ATOMS, if(H5I_init_group(H5I_ERROR_MSG, H5I_ERRMSG_HASHSIZE, H5E_RESERVED_ATOMS,
(H5I_free_t)H5E_close_msg)<0) (H5I_free_t)H5E_close_msg)<0)
HGOTO_ERROR(H5E_ATOM, H5E_CANTINIT, FAIL, "unable to initialize ID group"); HGOTO_ERROR(H5E_ATOM, H5E_CANTINIT, FAIL, "unable to initialize ID group")
/* Initialize the atom group for the error stacks */ /* Initialize the atom group for the error stacks */
if(H5I_init_group(H5I_ERROR_STACK, H5I_ERRSTK_HASHSIZE, H5E_RESERVED_ATOMS, if(H5I_init_group(H5I_ERROR_STACK, H5I_ERRSTK_HASHSIZE, H5E_RESERVED_ATOMS,
(H5I_free_t)H5E_close_stack)<0) (H5I_free_t)H5E_close_stack)<0)
HGOTO_ERROR(H5E_ATOM, H5E_CANTINIT, FAIL, "unable to initialize ID group"); HGOTO_ERROR(H5E_ATOM, H5E_CANTINIT, FAIL, "unable to initialize ID group")
#ifndef H5_HAVE_THREADSAFE #ifndef H5_HAVE_THREADSAFE
H5E_stack_g[0].nused = 0; H5E_stack_g[0].nused = 0;
@ -160,7 +160,7 @@ H5E_init_interface(void)
assert(H5E_ERR_CLS_g==(-1)); assert(H5E_ERR_CLS_g==(-1));
HDsnprintf(lib_vers,sizeof(lib_vers),"%u.%u.%u%s",H5_VERS_MAJOR,H5_VERS_MINOR,H5_VERS_RELEASE,(HDstrlen(H5_VERS_SUBRELEASE)>0 ? "-"H5_VERS_SUBRELEASE : "")); HDsnprintf(lib_vers,sizeof(lib_vers),"%u.%u.%u%s",H5_VERS_MAJOR,H5_VERS_MINOR,H5_VERS_RELEASE,(HDstrlen(H5_VERS_SUBRELEASE)>0 ? "-"H5_VERS_SUBRELEASE : ""));
if((cls = H5E_register_class(H5E_CLS_NAME, H5E_CLS_LIB_NAME, lib_vers))==NULL) if((cls = H5E_register_class(H5E_CLS_NAME, H5E_CLS_LIB_NAME, lib_vers))==NULL)
HGOTO_ERROR (H5E_ERROR, H5E_CANTINIT, FAIL, "class initialization failed"); HGOTO_ERROR (H5E_ERROR, H5E_CANTINIT, FAIL, "class initialization failed")
if((H5E_ERR_CLS_g = H5I_register(H5I_ERROR_CLASS, cls))<0) if((H5E_ERR_CLS_g = H5I_register(H5I_ERROR_CLASS, cls))<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTREGISTER, FAIL, "can't register error class") HGOTO_ERROR(H5E_ERROR, H5E_CANTREGISTER, FAIL, "can't register error class")
@ -168,7 +168,7 @@ H5E_init_interface(void)
#include "H5Einit.h" #include "H5Einit.h"
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -194,7 +194,7 @@ H5E_term_interface(void)
{ {
int ncls, nmsg, nstk, n=0; int ncls, nmsg, nstk, n=0;
FUNC_ENTER_NOINIT(H5E_term_interface); FUNC_ENTER_NOINIT(H5E_term_interface)
if (interface_initialize_g) { if (interface_initialize_g) {
/* Check if there are any open error stacks, classes or messages */ /* Check if there are any open error stacks, classes or messages */
@ -240,7 +240,7 @@ H5E_term_interface(void)
} }
} }
FUNC_LEAVE_NOAPI(n); FUNC_LEAVE_NOAPI(n)
} }
@ -268,7 +268,7 @@ H5E_get_stack(void)
H5E_t *estack; H5E_t *estack;
H5E_t *ret_value; /* Return value */ H5E_t *ret_value; /* Return value */
FUNC_ENTER_NOAPI(H5E_get_stack,NULL); FUNC_ENTER_NOAPI(H5E_get_stack,NULL)
estack = pthread_getspecific(H5TS_errstk_key_g); estack = pthread_getspecific(H5TS_errstk_key_g);
@ -285,7 +285,7 @@ H5E_get_stack(void)
ret_value=estack; ret_value=estack;
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
#endif /* H5_HAVE_THREADSAFE */ #endif /* H5_HAVE_THREADSAFE */
@ -310,7 +310,7 @@ H5Eregister_class(const char *cls_name, const char *lib_name, const char *versio
H5E_cls_t *cls; /* Pointer to error class */ H5E_cls_t *cls; /* Pointer to error class */
hid_t ret_value; /* Return value */ hid_t ret_value; /* Return value */
FUNC_ENTER_API(H5Eregister_class, FAIL); FUNC_ENTER_API(H5Eregister_class, FAIL)
H5TRACE3("i","sss",cls_name,lib_name,version); H5TRACE3("i","sss",cls_name,lib_name,version);
/* Check arguments */ /* Check arguments */
@ -326,7 +326,7 @@ H5Eregister_class(const char *cls_name, const char *lib_name, const char *versio
HGOTO_ERROR(H5E_ERROR, H5E_CANTREGISTER, FAIL, "can't register error class") HGOTO_ERROR(H5E_ERROR, H5E_CANTREGISTER, FAIL, "can't register error class")
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
@ -350,7 +350,7 @@ H5E_register_class(const char *cls_name, const char *lib_name, const char *versi
H5E_cls_t *cls; /* Pointer to error class */ H5E_cls_t *cls; /* Pointer to error class */
H5E_cls_t *ret_value; /* Return value */ H5E_cls_t *ret_value; /* Return value */
FUNC_ENTER_NOAPI(H5E_register_class, NULL); FUNC_ENTER_NOAPI(H5E_register_class, NULL)
/* Check arguments */ /* Check arguments */
assert(cls_name); assert(cls_name);
@ -373,7 +373,7 @@ H5E_register_class(const char *cls_name, const char *lib_name, const char *versi
ret_value=cls; ret_value=cls;
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -396,7 +396,7 @@ H5Eunregister_class(hid_t class_id)
{ {
herr_t ret_value = SUCCEED; /* Return value */ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(H5Eunregister_class, FAIL); FUNC_ENTER_API(H5Eunregister_class, FAIL)
H5TRACE1("e","i",class_id); H5TRACE1("e","i",class_id);
/* Check arguments */ /* Check arguments */
@ -408,10 +408,10 @@ H5Eunregister_class(hid_t class_id)
* reaches zero. * reaches zero.
*/ */
if(H5I_dec_ref(class_id)<0) if(H5I_dec_ref(class_id)<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTDEC, FAIL, "unable to decrement ref count on error class"); HGOTO_ERROR(H5E_ERROR, H5E_CANTDEC, FAIL, "unable to decrement ref count on error class")
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
@ -434,13 +434,14 @@ H5E_unregister_class(H5E_cls_t *cls)
{ {
herr_t ret_value = SUCCEED; /* Return value */ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5E_unregister_class, FAIL); FUNC_ENTER_NOAPI(H5E_unregister_class, FAIL)
/* Check arguments */ /* Check arguments */
assert(cls); assert(cls);
/* Iterate over all the messages and delete those in this error class */ /* Iterate over all the messages and delete those in this error class */
H5I_search(H5I_ERROR_MSG, H5E_close_msg_cb, cls); /* (Ignore return value, since callback isn't designed to return a particular object) */
(void)H5I_search(H5I_ERROR_MSG, H5E_close_msg_cb, cls);
/* Free error class structure */ /* Free error class structure */
if(cls->cls_name) if(cls->cls_name)
@ -452,7 +453,7 @@ H5E_unregister_class(H5E_cls_t *cls)
H5MM_xfree((void*)cls); H5MM_xfree((void*)cls);
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -477,7 +478,7 @@ H5Eget_class_name(hid_t class_id, char *name, size_t size)
H5E_cls_t *cls; /* Pointer to error class */ H5E_cls_t *cls; /* Pointer to error class */
ssize_t ret_value; /* Return value */ ssize_t ret_value; /* Return value */
FUNC_ENTER_API(H5Eget_class_name, FAIL); FUNC_ENTER_API(H5Eget_class_name, FAIL)
H5TRACE3("Zs","isz",class_id,name,size); H5TRACE3("Zs","isz",class_id,name,size);
/* Get the error class */ /* Get the error class */
@ -489,7 +490,7 @@ H5Eget_class_name(hid_t class_id, char *name, size_t size)
HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get error class name") HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get error class name")
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
@ -508,13 +509,13 @@ done:
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
ssize_t static ssize_t
H5E_get_class_name(H5E_cls_t *cls, char *name, size_t size) H5E_get_class_name(const H5E_cls_t *cls, char *name, size_t size)
{ {
ssize_t len; /* Length of rror class's name */ ssize_t len; /* Length of rror class's name */
ssize_t ret_value; /* Return value */ ssize_t ret_value; /* Return value */
FUNC_ENTER_NOAPI(H5E_get_class_name, FAIL); FUNC_ENTER_NOAPI(H5E_get_class_name, FAIL)
/* Check arguments */ /* Check arguments */
assert(cls); assert(cls);
@ -533,7 +534,7 @@ H5E_get_class_name(H5E_cls_t *cls, char *name, size_t size)
ret_value = len; ret_value = len;
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -559,7 +560,7 @@ H5E_close_msg_cb(void *obj_ptr, hid_t obj_id, void *key)
H5E_cls_t *cls = (H5E_cls_t*)key; H5E_cls_t *cls = (H5E_cls_t*)key;
herr_t ret_value = SUCCEED; /* Return value */ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5_close_msg_cb, FAIL); FUNC_ENTER_NOAPI(H5_close_msg_cb, FAIL)
/* Check arguments */ /* Check arguments */
assert(err_msg); assert(err_msg);
@ -567,10 +568,10 @@ H5E_close_msg_cb(void *obj_ptr, hid_t obj_id, void *key)
/* Close the message if it is in the class being closed */ /* Close the message if it is in the class being closed */
if(err_msg->cls == cls) if(err_msg->cls == cls)
if(H5I_dec_ref(obj_id)<0) if(H5I_dec_ref(obj_id)<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTDEC, FAIL, "unable to decrement ref count on error message"); HGOTO_ERROR(H5E_ERROR, H5E_CANTDEC, FAIL, "unable to decrement ref count on error message")
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -593,7 +594,7 @@ H5Eclose_msg(hid_t err_id)
{ {
herr_t ret_value = SUCCEED; /* Return value */ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(H5Eclose_msg, FAIL); FUNC_ENTER_API(H5Eclose_msg, FAIL)
H5TRACE1("e","i",err_id); H5TRACE1("e","i",err_id);
/* Check arguments */ /* Check arguments */
@ -602,10 +603,10 @@ H5Eclose_msg(hid_t err_id)
/* Decrement the counter. It will be freed if the count reaches zero. */ /* Decrement the counter. It will be freed if the count reaches zero. */
if(H5I_dec_ref(err_id)<0) if(H5I_dec_ref(err_id)<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTDEC, FAIL, "unable to decrement ref count on error message"); HGOTO_ERROR(H5E_ERROR, H5E_CANTDEC, FAIL, "unable to decrement ref count on error message")
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
@ -627,7 +628,7 @@ H5E_close_msg(H5E_msg_t *err)
{ {
herr_t ret_value = SUCCEED; /* Return value */ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5E_close_msg, FAIL); FUNC_ENTER_NOAPI(H5E_close_msg, FAIL)
/* Check arguments */ /* Check arguments */
assert(err); assert(err);
@ -639,7 +640,7 @@ H5E_close_msg(H5E_msg_t *err)
H5MM_xfree((void*)err); H5MM_xfree((void*)err);
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
@ -663,7 +664,7 @@ H5Ecreate_msg(hid_t class_id, H5E_type_t msg_type, const char *msg_str)
H5E_msg_t *msg; /* Pointer to new error message */ H5E_msg_t *msg; /* Pointer to new error message */
hid_t ret_value; /* Return value */ hid_t ret_value; /* Return value */
FUNC_ENTER_API(H5Ecreate_msg, FAIL); FUNC_ENTER_API(H5Ecreate_msg, FAIL)
/* Check arguments */ /* Check arguments */
if(msg_type!=H5E_MAJOR && msg_type!=H5E_MINOR) if(msg_type!=H5E_MAJOR && msg_type!=H5E_MINOR)
@ -684,7 +685,7 @@ H5Ecreate_msg(hid_t class_id, H5E_type_t msg_type, const char *msg_str)
HGOTO_ERROR(H5E_ERROR, H5E_CANTREGISTER, FAIL, "can't register error message") HGOTO_ERROR(H5E_ERROR, H5E_CANTREGISTER, FAIL, "can't register error message")
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
/*------------------------------------------------------------------------- /*-------------------------------------------------------------------------
@ -707,7 +708,7 @@ H5E_create_msg(H5E_cls_t *cls, H5E_type_t msg_type, const char *msg_str)
H5E_msg_t *msg; /* Pointer to new error message */ H5E_msg_t *msg; /* Pointer to new error message */
H5E_msg_t *ret_value; /* Return value */ H5E_msg_t *ret_value; /* Return value */
FUNC_ENTER_NOAPI(H5E_create_msg, NULL); FUNC_ENTER_NOAPI(H5E_create_msg, NULL)
/* Check arguments */ /* Check arguments */
assert(cls); assert(cls);
@ -728,7 +729,7 @@ H5E_create_msg(H5E_cls_t *cls, H5E_type_t msg_type, const char *msg_str)
ret_value = msg; ret_value = msg;
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -753,7 +754,7 @@ H5Eget_msg(hid_t msg_id, H5E_type_t *type, char *msg_str, size_t size)
H5E_msg_t *msg; /* Pointer to error message */ H5E_msg_t *msg; /* Pointer to error message */
ssize_t ret_value; /* Return value */ ssize_t ret_value; /* Return value */
FUNC_ENTER_API(H5Eget_msg, FAIL); FUNC_ENTER_API(H5Eget_msg, FAIL)
/* Get the message object */ /* Get the message object */
if((msg = H5I_object_verify(msg_id, H5I_ERROR_MSG))==NULL) if((msg = H5I_object_verify(msg_id, H5I_ERROR_MSG))==NULL)
@ -764,7 +765,7 @@ H5Eget_msg(hid_t msg_id, H5E_type_t *type, char *msg_str, size_t size)
HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get error message text") HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get error message text")
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
@ -784,18 +785,18 @@ done:
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
static ssize_t static ssize_t
H5E_get_msg(H5E_msg_t *msg, H5E_type_t *type, char *msg_str, size_t size) H5E_get_msg(const H5E_msg_t *msg, H5E_type_t *type, char *msg_str, size_t size)
{ {
ssize_t len; /* Length of rror class's name */ ssize_t len; /* Length of rror class's name */
ssize_t ret_value; /* Return value */ ssize_t ret_value; /* Return value */
FUNC_ENTER_NOAPI(H5E_get_msg, FAIL); FUNC_ENTER_NOAPI(H5E_get_msg, FAIL)
/* Check arguments */ /* Check arguments */
assert(msg); assert(msg);
/* Get the length of the message string */ /* Get the length of the message string */
len = HDstrlen(msg->msg); len = (ssize_t)HDstrlen(msg->msg);
/* Copy the message into the user's buffer, if given */ /* Copy the message into the user's buffer, if given */
if(msg_str) { if(msg_str) {
@ -812,7 +813,7 @@ H5E_get_msg(H5E_msg_t *msg, H5E_type_t *type, char *msg_str, size_t size)
ret_value = len; ret_value = len;
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -838,7 +839,7 @@ H5Eget_current_stack(void)
hid_t ret_value; /* Return value */ hid_t ret_value; /* Return value */
/* Don't clear the error stack! :-) */ /* Don't clear the error stack! :-) */
FUNC_ENTER_API_NOCLEAR(H5Eget_current_stack, FAIL); FUNC_ENTER_API_NOCLEAR(H5Eget_current_stack, FAIL)
H5TRACE0("i",""); H5TRACE0("i","");
/* Get the current stack */ /* Get the current stack */
@ -850,7 +851,7 @@ H5Eget_current_stack(void)
HGOTO_ERROR(H5E_ERROR, H5E_CANTREGISTER, FAIL, "can't create error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTREGISTER, FAIL, "can't create error stack")
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
@ -876,10 +877,10 @@ H5E_get_current_stack(void)
unsigned u; /* Local index variable */ unsigned u; /* Local index variable */
H5E_t *ret_value; /* Return value */ H5E_t *ret_value; /* Return value */
FUNC_ENTER_NOAPI(H5E_get_current_stack, NULL); FUNC_ENTER_NOAPI(H5E_get_current_stack, NULL)
/* Get a pointer to the current error stack */ /* Get a pointer to the current error stack */
if((current_stack = H5E_get_my_stack ())==NULL) if((current_stack = H5E_get_my_stack ())==NULL) /*lint !e506 !e774 Make lint 'constant value Boolean' in non-threaded case */
HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, NULL, "can't get current error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, NULL, "can't get current error stack")
/* Allocate a new error stack */ /* Allocate a new error stack */
@ -897,13 +898,13 @@ H5E_get_current_stack(void)
/* Increment the IDs to indicate that they are used in this stack */ /* Increment the IDs to indicate that they are used in this stack */
if(H5I_inc_ref(current_error->cls_id)<0) if(H5I_inc_ref(current_error->cls_id)<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTINC, NULL, "unable to decrement ref count on error class"); HGOTO_ERROR(H5E_ERROR, H5E_CANTINC, NULL, "unable to decrement ref count on error class")
new_error->cls_id = current_error->cls_id; new_error->cls_id = current_error->cls_id;
if(H5I_inc_ref(current_error->maj_id)<0) if(H5I_inc_ref(current_error->maj_id)<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTINC, NULL, "unable to decrement ref count on error message"); HGOTO_ERROR(H5E_ERROR, H5E_CANTINC, NULL, "unable to decrement ref count on error message")
new_error->maj_id = current_error->maj_id; new_error->maj_id = current_error->maj_id;
if(H5I_inc_ref(current_error->min_id)<0) if(H5I_inc_ref(current_error->min_id)<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTINC, NULL, "unable to decrement ref count on error message"); HGOTO_ERROR(H5E_ERROR, H5E_CANTINC, NULL, "unable to decrement ref count on error message")
new_error->min_id = current_error->min_id; new_error->min_id = current_error->min_id;
if((new_error->func_name = HDstrdup(current_error->func_name))==NULL) if((new_error->func_name = HDstrdup(current_error->func_name))==NULL)
HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed") HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, NULL, "memory allocation failed")
@ -926,7 +927,7 @@ done:
H5MM_xfree((void*)estack_copy); H5MM_xfree((void*)estack_copy);
} /* end if */ } /* end if */
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -950,7 +951,7 @@ H5Eset_current_stack(hid_t err_stack)
H5E_t *estack; H5E_t *estack;
herr_t ret_value = SUCCEED; /* Return value */ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(H5Eset_current_stack, FAIL); FUNC_ENTER_API(H5Eset_current_stack, FAIL)
H5TRACE1("e","i",err_stack); H5TRACE1("e","i",err_stack);
if(err_stack != H5E_DEFAULT) { if(err_stack != H5E_DEFAULT) {
@ -959,11 +960,11 @@ H5Eset_current_stack(hid_t err_stack)
/* Set the current error stack */ /* Set the current error stack */
if(H5E_set_current_stack(estack)<0) if(H5E_set_current_stack(estack)<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTSET, FAIL, "unable to set error stack"); HGOTO_ERROR(H5E_ERROR, H5E_CANTSET, FAIL, "unable to set error stack")
} /* end if */ } /* end if */
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
@ -988,13 +989,13 @@ H5E_set_current_stack(H5E_t *estack)
unsigned u; /* Local index variable */ unsigned u; /* Local index variable */
herr_t ret_value = SUCCEED; /* Return value */ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5E_set_current_stack, FAIL); FUNC_ENTER_NOAPI(H5E_set_current_stack, FAIL)
/* Sanity check */ /* Sanity check */
assert(estack); assert(estack);
/* Get a pointer to the current error stack */ /* Get a pointer to the current error stack */
if((current_stack = H5E_get_my_stack ())==NULL) if((current_stack = H5E_get_my_stack ())==NULL) /*lint !e506 !e774 Make lint 'constant value Boolean' in non-threaded case */
HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack")
/* Empty current error stack */ /* Empty current error stack */
@ -1011,13 +1012,13 @@ H5E_set_current_stack(H5E_t *estack)
/* Increment the IDs to indicate that they are used in this stack */ /* Increment the IDs to indicate that they are used in this stack */
if(H5I_inc_ref(new_error->cls_id)<0) if(H5I_inc_ref(new_error->cls_id)<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTINC, FAIL, "unable to decrement ref count on error class"); HGOTO_ERROR(H5E_ERROR, H5E_CANTINC, FAIL, "unable to decrement ref count on error class")
current_error->cls_id = new_error->cls_id; current_error->cls_id = new_error->cls_id;
if(H5I_inc_ref(new_error->maj_id)<0) if(H5I_inc_ref(new_error->maj_id)<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTINC, FAIL, "unable to decrement ref count on error class"); HGOTO_ERROR(H5E_ERROR, H5E_CANTINC, FAIL, "unable to decrement ref count on error class")
current_error->maj_id = new_error->maj_id; current_error->maj_id = new_error->maj_id;
if(H5I_inc_ref(new_error->min_id)<0) if(H5I_inc_ref(new_error->min_id)<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTINC, FAIL, "unable to decrement ref count on error class"); HGOTO_ERROR(H5E_ERROR, H5E_CANTINC, FAIL, "unable to decrement ref count on error class")
current_error->min_id = new_error->min_id; current_error->min_id = new_error->min_id;
if((current_error->func_name = HDstrdup(new_error->func_name))==NULL) if((current_error->func_name = HDstrdup(new_error->func_name))==NULL)
HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed") HGOTO_ERROR (H5E_RESOURCE, H5E_NOSPACE, FAIL, "memory allocation failed")
@ -1029,7 +1030,7 @@ H5E_set_current_stack(H5E_t *estack)
} /* end for */ } /* end for */
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -1052,7 +1053,7 @@ H5Eclose_stack(hid_t stack_id)
{ {
herr_t ret_value = SUCCEED; /* Return value */ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_API(H5Eclose_stack, FAIL); FUNC_ENTER_API(H5Eclose_stack, FAIL)
H5TRACE1("e","i",stack_id); H5TRACE1("e","i",stack_id);
if(H5E_DEFAULT != stack_id) { if(H5E_DEFAULT != stack_id) {
@ -1061,11 +1062,11 @@ H5Eclose_stack(hid_t stack_id)
* reaches zero. * reaches zero.
*/ */
if(H5I_dec_ref(stack_id)<0) if(H5I_dec_ref(stack_id)<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTDEC, FAIL, "unable to decrement ref count on error stack"); HGOTO_ERROR(H5E_ERROR, H5E_CANTDEC, FAIL, "unable to decrement ref count on error stack")
} /* end if */ } /* end if */
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
@ -1088,7 +1089,7 @@ H5E_close_stack(H5E_t *estack)
{ {
herr_t ret_value = SUCCEED; /* Return value */ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5E_close_stack, FAIL); FUNC_ENTER_NOAPI(H5E_close_stack, FAIL)
/* Sanity check */ /* Sanity check */
assert(estack); assert(estack);
@ -1100,7 +1101,7 @@ H5E_close_stack(H5E_t *estack)
H5MM_xfree((void*)estack); H5MM_xfree((void*)estack);
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -1125,12 +1126,12 @@ H5Eget_num(hid_t error_stack_id)
int ret_value; /* Return value */ int ret_value; /* Return value */
/* Don't clear the error stack! :-) */ /* Don't clear the error stack! :-) */
FUNC_ENTER_API_NOCLEAR(H5Eget_num, FAIL); FUNC_ENTER_API_NOCLEAR(H5Eget_num, FAIL)
H5TRACE1("Is","i",error_stack_id); H5TRACE1("Is","i",error_stack_id);
/* Need to check for errors */ /* Need to check for errors */
if(error_stack_id == H5E_DEFAULT) { if(error_stack_id == H5E_DEFAULT) {
if((estack = H5E_get_my_stack())==NULL) if((estack = H5E_get_my_stack())==NULL) /*lint !e506 !e774 Make lint 'constant value Boolean' in non-threaded case */
HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack")
} /* end if */ } /* end if */
else { else {
@ -1147,7 +1148,7 @@ H5Eget_num(hid_t error_stack_id)
HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get number of errors") HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get number of errors")
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
@ -1166,18 +1167,18 @@ done:
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
static int static int
H5E_get_num(H5E_t *estack) H5E_get_num(const H5E_t *estack)
{ {
int ret_value; /* Return value */ int ret_value; /* Return value */
FUNC_ENTER_NOAPI(H5E_get_num, FAIL); FUNC_ENTER_NOAPI(H5E_get_num, FAIL)
assert(estack); assert(estack);
ret_value = estack->nused; H5_ASSIGN_OVERFLOW(ret_value,estack->nused,size_t,int);
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -1202,12 +1203,12 @@ H5Epop(hid_t err_stack, size_t count)
herr_t ret_value = SUCCEED; /* Return value */ herr_t ret_value = SUCCEED; /* Return value */
/* Don't clear the error stack! :-) */ /* Don't clear the error stack! :-) */
FUNC_ENTER_API_NOCLEAR(H5Epop, FAIL); FUNC_ENTER_API_NOCLEAR(H5Epop, FAIL)
H5TRACE2("e","iz",err_stack,count); H5TRACE2("e","iz",err_stack,count);
/* Need to check for errors */ /* Need to check for errors */
if(err_stack == H5E_DEFAULT) { if(err_stack == H5E_DEFAULT) {
if((estack = H5E_get_my_stack())==NULL) if((estack = H5E_get_my_stack())==NULL) /*lint !e506 !e774 Make lint 'constant value Boolean' in non-threaded case */
HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack")
} /* end if */ } /* end if */
else { else {
@ -1228,7 +1229,7 @@ H5Epop(hid_t err_stack, size_t count)
HGOTO_ERROR(H5E_ERROR, H5E_CANTRELEASE, FAIL, "can't pop errors from stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTRELEASE, FAIL, "can't pop errors from stack")
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
@ -1252,7 +1253,7 @@ H5E_pop(H5E_t *estack, size_t count)
{ {
herr_t ret_value = SUCCEED; /* Return value */ herr_t ret_value = SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5E_pop, FAIL); FUNC_ENTER_NOAPI(H5E_pop, FAIL)
/* Sanity check */ /* Sanity check */
assert(estack); assert(estack);
@ -1263,7 +1264,7 @@ H5E_pop(H5E_t *estack, size_t count)
HGOTO_ERROR(H5E_ERROR, H5E_CANTRELEASE, FAIL, "can't remove errors from stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTRELEASE, FAIL, "can't remove errors from stack")
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -1306,7 +1307,7 @@ H5Epush(hid_t err_stack, const char *file, const char *func, unsigned line,
herr_t ret_value=SUCCEED; /* Return value */ herr_t ret_value=SUCCEED; /* Return value */
/* Don't clear the error stack! :-) */ /* Don't clear the error stack! :-) */
FUNC_ENTER_API_NOCLEAR(H5Epush, FAIL); FUNC_ENTER_API_NOCLEAR(H5Epush, FAIL)
H5TRACE7("e","issIuiis",err_stack,file,func,line,maj_id,min_id,fmt); H5TRACE7("e","issIuiis",err_stack,file,func,line,maj_id,min_id,fmt);
/* Need to check for errors */ /* Need to check for errors */
@ -1339,7 +1340,7 @@ H5Epush(hid_t err_stack, const char *file, const char *func, unsigned line,
HGOTO_ERROR(H5E_ERROR, H5E_CANTSET, FAIL, "can't push error on stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTSET, FAIL, "can't push error on stack")
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
@ -1384,7 +1385,7 @@ H5E_push(H5E_t *estack, const char *file, const char *func, unsigned line,
* HERROR(). HERROR() is called by HRETURN_ERROR() which could * HERROR(). HERROR() is called by HRETURN_ERROR() which could
* be called by FUNC_ENTER(). * be called by FUNC_ENTER().
*/ */
FUNC_ENTER_NOINIT(H5E_push); FUNC_ENTER_NOINIT(H5E_push)
/* Sanity check */ /* Sanity check */
assert(cls_id>0); assert(cls_id>0);
@ -1393,8 +1394,8 @@ H5E_push(H5E_t *estack, const char *file, const char *func, unsigned line,
/* Check for 'default' error stack */ /* Check for 'default' error stack */
if(estack==NULL) if(estack==NULL)
if((estack=H5E_get_my_stack())==NULL) if((estack = H5E_get_my_stack())==NULL) /*lint !e506 !e774 Make lint 'constant value Boolean' in non-threaded case */
HGOTO_DONE(FAIL); HGOTO_DONE(FAIL)
/* /*
* Don't fail if arguments are bad. Instead, substitute some default * Don't fail if arguments are bad. Instead, substitute some default
@ -1412,26 +1413,26 @@ H5E_push(H5E_t *estack, const char *file, const char *func, unsigned line,
if (estack->nused<H5E_NSLOTS) { if (estack->nused<H5E_NSLOTS) {
/* Increment the IDs to indicate that they are used in this stack */ /* Increment the IDs to indicate that they are used in this stack */
if(H5I_inc_ref(cls_id)<0) if(H5I_inc_ref(cls_id)<0)
HGOTO_DONE(FAIL); HGOTO_DONE(FAIL)
estack->slot[estack->nused].cls_id = cls_id; estack->slot[estack->nused].cls_id = cls_id;
if(H5I_inc_ref(maj_id)<0) if(H5I_inc_ref(maj_id)<0)
HGOTO_DONE(FAIL); HGOTO_DONE(FAIL)
estack->slot[estack->nused].maj_id = maj_id; estack->slot[estack->nused].maj_id = maj_id;
if(H5I_inc_ref(min_id)<0) if(H5I_inc_ref(min_id)<0)
HGOTO_DONE(FAIL); HGOTO_DONE(FAIL)
estack->slot[estack->nused].min_id = min_id; estack->slot[estack->nused].min_id = min_id;
if((estack->slot[estack->nused].func_name = HDstrdup(func))==NULL) if((estack->slot[estack->nused].func_name = HDstrdup(func))==NULL)
HGOTO_DONE(FAIL); HGOTO_DONE(FAIL)
if((estack->slot[estack->nused].file_name = HDstrdup(file))==NULL) if((estack->slot[estack->nused].file_name = HDstrdup(file))==NULL)
HGOTO_DONE(FAIL); HGOTO_DONE(FAIL)
estack->slot[estack->nused].line = line; estack->slot[estack->nused].line = line;
if((estack->slot[estack->nused].desc = HDstrdup(desc))==NULL) if((estack->slot[estack->nused].desc = HDstrdup(desc))==NULL)
HGOTO_DONE(FAIL); HGOTO_DONE(FAIL)
estack->nused++; estack->nused++;
} }
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -1456,7 +1457,7 @@ H5Eclear(hid_t err_stack)
herr_t ret_value=SUCCEED; /* Return value */ herr_t ret_value=SUCCEED; /* Return value */
/* Don't clear the error stack! :-) */ /* Don't clear the error stack! :-) */
FUNC_ENTER_API_NOCLEAR(H5Eclear, FAIL); FUNC_ENTER_API_NOCLEAR(H5Eclear, FAIL)
H5TRACE1("e","i",err_stack); H5TRACE1("e","i",err_stack);
/* Need to check for errors */ /* Need to check for errors */
@ -1475,7 +1476,7 @@ H5Eclear(hid_t err_stack)
HGOTO_ERROR(H5E_ERROR, H5E_CANTSET, FAIL, "can't clear error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTSET, FAIL, "can't clear error stack")
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
@ -1501,7 +1502,7 @@ H5E_clear_entries(H5E_t *estack, unsigned nentries)
unsigned u; /* Local index variable */ unsigned u; /* Local index variable */
herr_t ret_value=SUCCEED; /* Return value */ herr_t ret_value=SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5E_clear_entries, FAIL); FUNC_ENTER_NOAPI(H5E_clear_entries, FAIL)
/* Sanity check */ /* Sanity check */
assert(estack); assert(estack);
@ -1514,11 +1515,11 @@ H5E_clear_entries(H5E_t *estack, unsigned nentries)
/* Decrement the IDs to indicate that they are no longer used by this stack */ /* Decrement the IDs to indicate that they are no longer used by this stack */
/* (In reverse order that they were incremented, so that reference counts work well) */ /* (In reverse order that they were incremented, so that reference counts work well) */
if(H5I_dec_ref(error->min_id)<0) if(H5I_dec_ref(error->min_id)<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTDEC, FAIL, "unable to decrement ref count on error message"); HGOTO_ERROR(H5E_ERROR, H5E_CANTDEC, FAIL, "unable to decrement ref count on error message")
if(H5I_dec_ref(error->maj_id)<0) if(H5I_dec_ref(error->maj_id)<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTDEC, FAIL, "unable to decrement ref count on error message"); HGOTO_ERROR(H5E_ERROR, H5E_CANTDEC, FAIL, "unable to decrement ref count on error message")
if(H5I_dec_ref(error->cls_id)<0) if(H5I_dec_ref(error->cls_id)<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTDEC, FAIL, "unable to decrement ref count on error class"); HGOTO_ERROR(H5E_ERROR, H5E_CANTDEC, FAIL, "unable to decrement ref count on error class")
/* Release strings */ /* Release strings */
if(error->func_name) if(error->func_name)
@ -1533,7 +1534,7 @@ H5E_clear_entries(H5E_t *estack, unsigned nentries)
estack->nused-=u; estack->nused-=u;
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -1557,11 +1558,11 @@ H5E_clear(H5E_t *estack)
{ {
herr_t ret_value=SUCCEED; /* Return value */ herr_t ret_value=SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5E_clear, FAIL); FUNC_ENTER_NOAPI(H5E_clear, FAIL)
/* Check for 'default' error stack */ /* Check for 'default' error stack */
if(estack==NULL) if(estack==NULL)
if((estack=H5E_get_my_stack())==NULL) if((estack = H5E_get_my_stack())==NULL) /*lint !e506 !e774 Make lint 'constant value Boolean' in non-threaded case */
HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack")
/* Empty the error stack */ /* Empty the error stack */
@ -1571,7 +1572,7 @@ H5E_clear(H5E_t *estack)
HGOTO_ERROR(H5E_ERROR, H5E_CANTSET, FAIL, "can't clear error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTSET, FAIL, "can't clear error stack")
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -1608,12 +1609,12 @@ H5Eprint(hid_t err_stack, FILE *stream)
herr_t ret_value=SUCCEED; /* Return value */ herr_t ret_value=SUCCEED; /* Return value */
/* Don't clear the error stack! :-) */ /* Don't clear the error stack! :-) */
FUNC_ENTER_API_NOCLEAR(H5Eprint, FAIL); FUNC_ENTER_API_NOCLEAR(H5Eprint, FAIL)
/*NO TRACE*/ /*NO TRACE*/
/* Need to check for errors */ /* Need to check for errors */
if(err_stack == H5E_DEFAULT) { if(err_stack == H5E_DEFAULT) {
if((estack = H5E_get_my_stack())==NULL) if((estack = H5E_get_my_stack())==NULL) /*lint !e506 !e774 Make lint 'constant value Boolean' in non-threaded case */
HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack")
} /* end if */ } /* end if */
else { else {
@ -1629,7 +1630,7 @@ H5Eprint(hid_t err_stack, FILE *stream)
HGOTO_ERROR(H5E_ERROR, H5E_CANTLIST, FAIL, "can't display error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTLIST, FAIL, "can't display error stack")
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
@ -1660,13 +1661,13 @@ done:
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
static herr_t static herr_t
H5E_print(H5E_t *estack, FILE *stream) H5E_print(const H5E_t *estack, FILE *stream)
{ {
H5E_print_t eprint; /* Callback information to pass to H5E_walk_cb() */ H5E_print_t eprint; /* Callback information to pass to H5E_walk_cb() */
herr_t ret_value = SUCCEED; herr_t ret_value = SUCCEED;
/* Don't clear the error stack! :-) */ /* Don't clear the error stack! :-) */
FUNC_ENTER_NOAPI(H5E_print, FAIL); FUNC_ENTER_NOAPI(H5E_print, FAIL)
/* Sanity check */ /* Sanity check */
assert(estack); assert(estack);
@ -1685,7 +1686,7 @@ H5E_print(H5E_t *estack, FILE *stream)
HGOTO_ERROR(H5E_ERROR, H5E_CANTLIST, FAIL, "can't walk error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTLIST, FAIL, "can't walk error stack")
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -1715,12 +1716,12 @@ H5Ewalk(hid_t err_stack, H5E_direction_t direction, H5E_walk_t func, void *clien
herr_t ret_value=SUCCEED; /* Return value */ herr_t ret_value=SUCCEED; /* Return value */
/* Don't clear the error stack! :-) */ /* Don't clear the error stack! :-) */
FUNC_ENTER_API_NOCLEAR(H5Ewalk, FAIL); FUNC_ENTER_API_NOCLEAR(H5Ewalk, FAIL)
/*NO TRACE*/ /*NO TRACE*/
/* Need to check for errors */ /* Need to check for errors */
if(err_stack == H5E_DEFAULT) { if(err_stack == H5E_DEFAULT) {
if((estack = H5E_get_my_stack())==NULL) if((estack = H5E_get_my_stack())==NULL) /*lint !e506 !e774 Make lint 'constant value Boolean' in non-threaded case */
HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack")
} /* end if */ } /* end if */
else { else {
@ -1736,7 +1737,7 @@ H5Ewalk(hid_t err_stack, H5E_direction_t direction, H5E_walk_t func, void *clien
HGOTO_ERROR(H5E_ERROR, H5E_CANTLIST, FAIL, "can't walk error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTLIST, FAIL, "can't walk error stack")
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
@ -1772,13 +1773,13 @@ done:
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
static herr_t static herr_t
H5E_walk (H5E_t *estack, H5E_direction_t direction, H5E_walk_t func, void *client_data) H5E_walk (const H5E_t *estack, H5E_direction_t direction, H5E_walk_t func, void *client_data)
{ {
int i; /* Local index variable */ int i; /* Local index variable */
herr_t status; /* Status from callback function */ herr_t status; /* Status from callback function */
herr_t ret_value=SUCCEED; /* Return value */ herr_t ret_value=SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5E_walk, FAIL); FUNC_ENTER_NOAPI(H5E_walk, FAIL)
/* Sanity check */ /* Sanity check */
assert (estack); assert (estack);
@ -1794,15 +1795,16 @@ H5E_walk (H5E_t *estack, H5E_direction_t direction, H5E_walk_t func, void *clien
for (i=0; i<(int)estack->nused && status>=0; i++) for (i=0; i<(int)estack->nused && status>=0; i++)
status = (func)((unsigned)i, estack->slot+i, client_data); status = (func)((unsigned)i, estack->slot+i, client_data);
} else { } else {
for (i=estack->nused-1; i>=0 && status>=0; i--) H5_CHECK_OVERFLOW(estack->nused-1,size_t,int);
status = (func)(estack->nused-(i+1), estack->slot+i, client_data); for (i=(int)(estack->nused-1); i>=0 && status>=0; i--)
status = (func)(estack->nused-(size_t)(i+1), estack->slot+i, client_data);
} }
if(status<0) if(status<0)
HGOTO_ERROR(H5E_ERROR, H5E_CANTLIST, FAIL, "can't walk error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTLIST, FAIL, "can't walk error stack")
} /* end if */ } /* end if */
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -1840,19 +1842,18 @@ done:
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
static herr_t static herr_t
H5E_walk_cb(unsigned n, H5E_error_t *err_desc, void *client_data) H5E_walk_cb(unsigned n, const H5E_error_t *err_desc, void *client_data)
{ {
H5E_print_t *eprint = (H5E_print_t *)client_data; H5E_print_t *eprint = (H5E_print_t *)client_data;
FILE *stream; /* I/O stream to print output to */ FILE *stream; /* I/O stream to print output to */
H5E_cls_t *cls_ptr; /* Pointer to error class */ H5E_cls_t *cls_ptr; /* Pointer to error class */
H5E_msg_t *maj_ptr; /* Pointer to major error info */ H5E_msg_t *maj_ptr; /* Pointer to major error info */
H5E_msg_t *min_ptr; /* Pointer to minor error info */ H5E_msg_t *min_ptr; /* Pointer to minor error info */
const char *cls_str; /* Class description */
const char *maj_str = "No major description"; /* Major error description */ const char *maj_str = "No major description"; /* Major error description */
const char *min_str = "No major description"; /* Minor error description */ const char *min_str = "No minor description"; /* Minor error description */
unsigned have_desc=1; /* Flag to indicate whether the error has a "real" description */ unsigned have_desc=1; /* Flag to indicate whether the error has a "real" description */
FUNC_ENTER_NOINIT(H5E_walk_cb); FUNC_ENTER_NOINIT(H5E_walk_cb)
/* Check arguments */ /* Check arguments */
assert (err_desc); assert (err_desc);
@ -1867,12 +1868,11 @@ H5E_walk_cb(unsigned n, H5E_error_t *err_desc, void *client_data)
assert(maj_ptr && min_ptr); assert(maj_ptr && min_ptr);
if(maj_ptr->msg) if(maj_ptr->msg)
maj_str = maj_ptr->msg; maj_str = maj_ptr->msg;
if(min_ptr) if(min_ptr->msg)
min_str = min_ptr->msg; min_str = min_ptr->msg;
/* Get error class info */ /* Get error class info */
cls_ptr = maj_ptr->cls; cls_ptr = maj_ptr->cls;
cls_str = maj_ptr->cls->cls_name;
/* Print error class header if new class */ /* Print error class header if new class */
if(eprint->cls.lib_name==NULL || HDstrcmp(cls_ptr->lib_name, eprint->cls.lib_name)) { if(eprint->cls.lib_name==NULL || HDstrcmp(cls_ptr->lib_name, eprint->cls.lib_name)) {
@ -1913,7 +1913,7 @@ H5E_walk_cb(unsigned n, H5E_error_t *err_desc, void *client_data)
fprintf (stream, "%*smajor: %s\n", H5E_INDENT*2, "", maj_str); fprintf (stream, "%*smajor: %s\n", H5E_INDENT*2, "", maj_str);
fprintf (stream, "%*sminor: %s\n", H5E_INDENT*2, "", min_str); fprintf (stream, "%*sminor: %s\n", H5E_INDENT*2, "", min_str);
FUNC_LEAVE_NOAPI(SUCCEED); FUNC_LEAVE_NOAPI(SUCCEED)
} }
@ -1944,11 +1944,11 @@ H5Eget_auto(hid_t estack_id, H5E_auto_t *func, void **client_data)
H5E_t *estack; /* Error stack to operate on */ H5E_t *estack; /* Error stack to operate on */
herr_t ret_value=SUCCEED; /* Return value */ herr_t ret_value=SUCCEED; /* Return value */
FUNC_ENTER_API(H5Eget_auto, FAIL); FUNC_ENTER_API(H5Eget_auto, FAIL)
H5TRACE3("e","i*x*x",estack_id,func,client_data); H5TRACE3("e","i*x*x",estack_id,func,client_data);
if(estack_id == H5E_DEFAULT) { if(estack_id == H5E_DEFAULT) {
if((estack = H5E_get_my_stack())==NULL) if((estack = H5E_get_my_stack())==NULL) /*lint !e506 !e774 Make lint 'constant value Boolean' in non-threaded case */
HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack")
} /* end if */ } /* end if */
else else
@ -1960,7 +1960,7 @@ H5Eget_auto(hid_t estack_id, H5E_auto_t *func, void **client_data)
HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get automatic error info") HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get automatic error info")
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
@ -1982,11 +1982,11 @@ done:
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
static herr_t static herr_t
H5E_get_auto(H5E_t *estack, H5E_auto_t *func, void **client_data) H5E_get_auto(const H5E_t *estack, H5E_auto_t *func, void **client_data)
{ {
herr_t ret_value=SUCCEED; /* Return value */ herr_t ret_value=SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5E_get_auto, FAIL); FUNC_ENTER_NOAPI(H5E_get_auto, FAIL)
assert (estack); assert (estack);
@ -1995,7 +1995,7 @@ H5E_get_auto(H5E_t *estack, H5E_auto_t *func, void **client_data)
if(client_data) *client_data = estack->auto_data; if(client_data) *client_data = estack->auto_data;
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -2031,11 +2031,11 @@ H5Eset_auto(hid_t estack_id, H5E_auto_t func, void *client_data)
H5E_t *estack; /* Error stack to operate on */ H5E_t *estack; /* Error stack to operate on */
herr_t ret_value=SUCCEED; /* Return value */ herr_t ret_value=SUCCEED; /* Return value */
FUNC_ENTER_API(H5Eset_auto, FAIL); FUNC_ENTER_API(H5Eset_auto, FAIL)
H5TRACE3("e","ixx",estack_id,func,client_data); H5TRACE3("e","ixx",estack_id,func,client_data);
if(estack_id == H5E_DEFAULT) { if(estack_id == H5E_DEFAULT) {
if((estack = H5E_get_my_stack())==NULL) if((estack = H5E_get_my_stack())==NULL) /*lint !e506 !e774 Make lint 'constant value Boolean' in non-threaded case */
HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack") HGOTO_ERROR(H5E_ERROR, H5E_CANTGET, FAIL, "can't get current error stack")
} /* end if */ } /* end if */
else else
@ -2047,7 +2047,7 @@ H5Eset_auto(hid_t estack_id, H5E_auto_t func, void *client_data)
HGOTO_ERROR(H5E_ERROR, H5E_CANTSET, FAIL, "can't set automatic error info") HGOTO_ERROR(H5E_ERROR, H5E_CANTSET, FAIL, "can't set automatic error info")
done: done:
FUNC_LEAVE_API(ret_value); FUNC_LEAVE_API(ret_value)
} }
@ -2083,7 +2083,7 @@ H5E_set_auto(H5E_t *estack, H5E_auto_t func, void *client_data)
{ {
herr_t ret_value=SUCCEED; /* Return value */ herr_t ret_value=SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5E_set_auto, FAIL); FUNC_ENTER_NOAPI(H5E_set_auto, FAIL)
assert(estack); assert(estack);
@ -2092,7 +2092,7 @@ H5E_set_auto(H5E_t *estack, H5E_auto_t func, void *client_data)
estack->auto_data = client_data; estack->auto_data = client_data;
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }
@ -2117,7 +2117,7 @@ H5E_dump_api_stack(int is_api)
{ {
herr_t ret_value=SUCCEED; /* Return value */ herr_t ret_value=SUCCEED; /* Return value */
FUNC_ENTER_NOAPI(H5E_dump_api_stack, FAIL); FUNC_ENTER_NOAPI(H5E_dump_api_stack, FAIL)
/* Only dump the error stack during an API call */ /* Only dump the error stack during an API call */
if(is_api) { if(is_api) {
@ -2129,5 +2129,5 @@ H5E_dump_api_stack(int is_api)
} /* end if */ } /* end if */
done: done:
FUNC_LEAVE_NOAPI(ret_value); FUNC_LEAVE_NOAPI(ret_value)
} }

View File

@ -71,7 +71,7 @@ typedef struct H5E_print_t {
*/ */
#define HCOMMON_ERROR(maj, min, str) \ #define HCOMMON_ERROR(maj, min, str) \
HERROR(maj, min, str); \ HERROR(maj, min, str); \
H5E_dump_api_stack(H5_IS_API(FUNC)); (void)H5E_dump_api_stack((int)H5_IS_API(FUNC));
/* /*
* HDONE_ERROR macro, used to facilitate error reporting between a * HDONE_ERROR macro, used to facilitate error reporting between a

View File

@ -60,6 +60,7 @@ typedef struct H5E_error_t {
H5_DLLVAR hid_t H5E_ERR_CLS_g; H5_DLLVAR hid_t H5E_ERR_CLS_g;
/* Include the automatically generated public header information */ /* Include the automatically generated public header information */
/* (This includes the list of major and minor error codes for the library) */
#include "H5Epubgen.h" #include "H5Epubgen.h"
/* /*
@ -121,7 +122,7 @@ extern "C" {
#endif #endif
/* Error stack traversal callback function pointers */ /* Error stack traversal callback function pointers */
typedef herr_t (*H5E_walk_t)(unsigned n, H5E_error_t *err_desc, void *client_data); typedef herr_t (*H5E_walk_t)(unsigned n, const H5E_error_t *err_desc, void *client_data);
typedef herr_t (*H5E_auto_t)(hid_t estack, void *client_data); typedef herr_t (*H5E_auto_t)(hid_t estack, void *client_data);
/* Public API functions */ /* Public API functions */

View File

@ -1,5 +1,6 @@
// Turn off warnings about not using the return value from these functions: // Turn off warnings about not using the return value from these functions:
-esym(534, HDfprintf, H5E_clear, H5E_push) -esym(534, HDfprintf, HDsnprintf, HDvsnprintf)
-esym(534, H5E_clear, H5E_push)
-esym(534, H5FL_arr_free, H5FL_blk_free, H5FL_reg_free) -esym(534, H5FL_arr_free, H5FL_blk_free, H5FL_reg_free)
-esym(534, H5I_clear_group, H5I_destroy_group) -esym(534, H5I_clear_group, H5I_destroy_group)
-esym(534, H5MM_xfree) -esym(534, H5MM_xfree)
@ -28,7 +29,7 @@
-e820 -e820
// Suppress message about "Constant value boolean" in FUNC_ENTER* macros // Suppress message about "Constant value boolean" in FUNC_ENTER* macros
-emacro(506,FUNC_ENTER_API,FUNC_ENTER_NOAPI) -emacro(506,FUNC_ENTER_API,FUNC_ENTER_API_NOCLEAR, FUNC_ENTER_NOAPI)
// Suppress message about "Suspicious cast" in FUNC_ENTER* macros // Suppress message about "Suspicious cast" in FUNC_ENTER* macros
-emacro(611,FUNC_ENTER_API,FUNC_ENTER_NOAPI) -emacro(611,FUNC_ENTER_API,FUNC_ENTER_NOAPI)