[Ffmpeg-devel] [PATCH] restore signal handler again on sparc

Reimar Döffinger Reimar.Doeffinger
Sat Dec 9 16:52:24 CET 2006


Hello,
attached patch at least makes an attempt to restore the changed signal
handler on sparc.
The code is still broken though since it is e.g. not thread safe.

Greetings,
Reimar D?ffinger
-------------- next part --------------
Index: libavcodec/sparc/dsputil_vis.c
===================================================================
--- libavcodec/sparc/dsputil_vis.c	(revision 7266)
+++ libavcodec/sparc/dsputil_vis.c	(working copy)
@@ -4005,10 +4005,11 @@
 static int vis_level ()
 {
     int accel = 0;
+    sighandler_t prevsig;
 
-    signal (SIGILL, sigill_handler);
+    prevsig = signal (SIGILL, sigill_handler);
     if (sigsetjmp (jmpbuf, 1)) {
-        signal (SIGILL, SIG_DFL);
+        signal (SIGILL, prevsig);
         return accel;
     }
 
@@ -4021,7 +4022,7 @@
     accel |= ACCEL_SPARC_VIS;
 
     if (sigsetjmp (jmpbuf, 1)) {
-        signal (SIGILL, SIG_DFL);
+        signal (SIGILL, prevsig);
         return accel;
     }
 
@@ -4033,7 +4034,7 @@
     canjump = 0;
     accel |= ACCEL_SPARC_VIS2;
 
-    signal (SIGILL, SIG_DFL);
+    signal (SIGILL, prevsig);
 
     return accel;
 }



More information about the ffmpeg-devel mailing list