fix for ticket #121 jmpbuf on aix is a problem it seems, maybe this makes it better.
authoroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Sun, 8 Jun 2008 16:23:39 +0000 (16:23 +0000)
committeroetiker <oetiker@a5681a0c-68f1-0310-ab6d-d61299d08faa>
Sun, 8 Jun 2008 16:23:39 +0000 (16:23 +0000)
git-svn-id: svn://svn.oetiker.ch/rrdtool/trunk/program@1409 a5681a0c-68f1-0310-ab6d-d61299d08faa

src/pngsize.c

index 7cdf6c1..0f8fd8b 100644 (file)
@@ -27,13 +27,16 @@ int PngSize(
 /* this is to make compile on aix work since they seem to define jmpbuf
    to be _jmpbuf which breaks compilation */
 
 /* this is to make compile on aix work since they seem to define jmpbuf
    to be _jmpbuf which breaks compilation */
 
-#ifdef jmpbuf
-#undef jmpbuf
-#endif
-
 #ifndef png_jmpbuf
 #ifndef png_jmpbuf
+#ifdef PNG_SETJMP_SUPPORTED
+#  define png_jmpbuf(png_ptr)   ((png_ptr)->PNG_jmpbuf)
+#else
+#ifdef jmpbuf  
+#undef jmpbuf  
+#endif  
 #  define png_jmpbuf(png_ptr)   ((png_ptr)->jmpbuf)
 #endif
 #  define png_jmpbuf(png_ptr)   ((png_ptr)->jmpbuf)
 #endif
+#endif
 
     if (setjmp(png_jmpbuf(png_read_ptr))) {
         png_destroy_read_struct(&png_read_ptr, &info_ptr, (png_infopp) NULL);
 
     if (setjmp(png_jmpbuf(png_read_ptr))) {
         png_destroy_read_struct(&png_read_ptr, &info_ptr, (png_infopp) NULL);