src/share/native/sun/awt/splashscreen/splashscreen_png.c

Print this page
rev 9959 : 8026385: [macosx] (awt) setjmp/longjmp changes the process signal mask on OS X
Reviewed-by:
Contributed-by: David DeHaven <david.dehaven@oracle.com>

@@ -69,11 +69,16 @@
     info_ptr = png_create_info_struct(png_ptr);
     if (!info_ptr) {
         goto done;
     }
 
+#ifdef __APPLE__
+    /* use setjmp/longjmp versions that do not save/restore the signal mask */
+    if (_setjmp(png_set_longjmp_fn(png_ptr, _longjmp, sizeof(jmp_buf)))) {
+#else
     if (setjmp(png_jmpbuf(png_ptr))) {
+#endif
         goto done;
     }
 
     png_set_read_fn(png_ptr, io_ptr, read_func);