[svn-r14067] Purpose: Revise usage of H5_HAVE_SIGLONGJMP

Description:
The way I had integrated H5_HAVE_SIGLONGJMP previously, we conditionally removed far more functionality than we needed.  As a result, Windows type alignment was lost.  This commit localizes the ifdef so it only surrounds the actual call to siglongjmp.  This is equivalent to what we've done in the past-- simply comment out the line.

Tested:
VNET on WinXP
This commit is contained in:
Scott Wegner 2007-08-10 14:07:06 -05:00
parent e039e5125c
commit b91e17b6cf

View File

@ -356,7 +356,7 @@ precision (detected_t *d)
COMP_ALIGN = (size_t)((char*)(&(s.x)) - (char*)(&s)); \ COMP_ALIGN = (size_t)((char*)(&(s.x)) - (char*)(&s)); \
} }
#if defined(H5_HAVE_LONGJMP) && defined(H5_HAVE_SIGNAL) && defined(H5_HAVE_SIGLONGJMP) #if defined(H5_HAVE_LONGJMP) && defined(H5_HAVE_SIGNAL)
#define ALIGNMENT(TYPE,INFO) { \ #define ALIGNMENT(TYPE,INFO) { \
char *volatile _buf=NULL; \ char *volatile _buf=NULL; \
volatile TYPE _val=1; \ volatile TYPE _val=1; \
@ -493,7 +493,9 @@ sigbus_handler(int UNUSED signo)
{ {
signal(SIGBUS, sigbus_handler); signal(SIGBUS, sigbus_handler);
longjmp(jbuf_g, 1); longjmp(jbuf_g, 1);
#ifdef H5_HAVE_SIGLONGJMP
siglongjmp(jbuf_g, 1); siglongjmp(jbuf_g, 1);
#endif /* H5_HAVE_SIGLONGJMP */
} }