[Liboil-commit] liboil/liboilfault.c

David Schleef ds at kemper.freedesktop.org
Thu Mar 13 15:46:51 PDT 2008


 liboil/liboilfault.c |   17 +----------------
 1 file changed, 1 insertion(+), 16 deletions(-)

New commits:
commit 7210cdc46b335c6812f04272d074f8359fab77d5
Author: David Schleef <ds at ginger.bigkitten.com>
Date:   Thu Mar 13 15:48:22 2008 -0700

    Unmask SIGILL if we catch it.  Change back to setjmp/longjmp instead of sigsetjmp/siglongjmp, since it doesn't do what we want.

diff --git a/liboil/liboilfault.c b/liboil/liboilfault.c
index 8876a90..de0b66a 100644
--- a/liboil/liboilfault.c
+++ b/liboil/liboilfault.c
@@ -28,15 +28,13 @@
 #ifdef HAVE_CONFIG_H
 #include "config.h"
 #endif
+
 #include <liboil/liboilfunction.h>
 #include <liboil/liboildebug.h>
 #include <liboil/liboilfault.h>
 
-//#include <unistd.h>
-//#include <fcntl.h>
 #include <stdlib.h>
 #include <string.h>
-//#include <stdio.h>
 #include <setjmp.h>
 #include <signal.h>
 
@@ -55,20 +53,11 @@ static void
 illegal_instruction_handler (int num)
 {
   if (in_try_block) {
-#ifdef HAVE_SIGSETJMP
-#if 0
-    /* alternate method of siglongjmp() */
     sigset_t set;
     sigemptyset (&set);
     sigaddset (&set, SIGILL);
     sigprocmask (SIG_UNBLOCK, &set, NULL);
     longjmp (jump_env, 1);
-#else
-    siglongjmp (jump_env, 1);
-#endif
-#else
-    longjmp (jump_env, 1);
-#endif
   } else {
     abort ();
   }
@@ -122,11 +111,7 @@ oil_fault_check_try (void (*func) (void *), void *priv)
   int ret;
 
   in_try_block = 1;
-#ifdef HAVE_SIGSETJMP
-  ret = sigsetjmp (jump_env, 1);
-#else
   ret = setjmp (jump_env);
-#endif
   if (!ret) {
     func (priv);
   }


More information about the Liboil-commit mailing list