[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
bug#7908: png-1.5 fix for emacs-23.2 and HEAD
From: |
Chong Yidong |
Subject: |
bug#7908: png-1.5 fix for emacs-23.2 and HEAD |
Date: |
Tue, 25 Jan 2011 16:09:20 -0500 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.0.50 (gnu/linux) |
Chong Yidong <cyd@stupidchicken.com> writes:
>> This doesn't work, I tried that a few weeks ago, and I still get link
>> errors.
>
> Do you have the exact link errors? If possible, please try with this
> patch (the libpng API changes are a bit of a mess, and it's possible
> that small changes might affect success or failure).
Sorry, there was a typo in the patch I sent, use this instead:
*** src/image.c 2011-01-16 15:40:47 +0000
--- src/image.c 2011-01-25 21:04:20 +0000
***************
*** 5590,5595 ****
--- 5590,5600 ----
DEF_IMGLIB_FN (png_read_end);
DEF_IMGLIB_FN (png_error);
+ #if (PNG_LIBPNG_VER >= 10500)
+ DEF_IMGLIB_FN (png_longjmp);
+ DEF_IMGLIB_FN (png_set_longjmp_fn);
+ #endif /* libpng version >= 1.5 */
+
static int
init_png_functions (Lisp_Object libraries)
{
***************
*** 5620,5625 ****
--- 5625,5636 ----
LOAD_IMGLIB_FN (library, png_read_image);
LOAD_IMGLIB_FN (library, png_read_end);
LOAD_IMGLIB_FN (library, png_error);
+
+ #if (PNG_LIBPNG_VER >= 10500)
+ LOAD_IMGLIB_FN (library, png_longjmp);
+ LOAD_IMGLIB_FN (library, png_set_longjmp_fn);
+ #endif /* libpng version >= 1.5 */
+
return 1;
}
#else
***************
*** 5646,5653 ****
--- 5657,5680 ----
#define fn_png_read_end png_read_end
#define fn_png_error png_error
+ #if (PNG_LIBPNG_VER >= 10500)
+ #define fn_png_longjmp png_longjmp
+ #define fn_png_set_longjmp_fn png_set_longjmp_fn
+ #endif /* libpng version >= 1.5 */
+
#endif /* HAVE_NTGUI */
+
+ #if (PNG_LIBPNG_VER < 10500)
+ #define PNG_LONGJMP(ptr) (longjmp (ptr->jmpbuf, 1))
+ #define PNG_JMPBUF(ptr) ((ptr)->jmpbuf)
+ #else
+ /* In libpng version 1.5, the jmpbuf member is hidden. */
+ #define PNG_LONGJMP(ptr) (fn_png_longjmp (png_ptr, 1))
+ #define PNG_JMPBUF(ptr) \
+ (*fn_png_set_longjmp_fn((ptr), longjmp, sizeof (jmp_buf)))
+ #endif
+
/* Error and warning handlers installed when the PNG library
is initialized. */
***************
*** 5660,5666 ****
/* Avoid compiler warning about deprecated direct access to
png_ptr's fields in libpng versions 1.4.x. */
image_error ("PNG error: %s", build_string (msg), Qnil);
! longjmp (png_ptr->jmpbuf, 1);
}
--- 5687,5693 ----
/* Avoid compiler warning about deprecated direct access to
png_ptr's fields in libpng versions 1.4.x. */
image_error ("PNG error: %s", build_string (msg), Qnil);
! PNG_LONGJMP (png_ptr);
}
***************
*** 5836,5842 ****
/* Set error jump-back. We come back here when the PNG library
detects an error. */
! if (setjmp (png_ptr->jmpbuf))
{
error:
if (png_ptr)
--- 5863,5869 ----
/* Set error jump-back. We come back here when the PNG library
detects an error. */
! if (setjmp (PNG_JMPBUF (png_ptr)))
{
error:
if (png_ptr)
- bug#7908: png-1.5 fix for emacs-23.2 and HEAD, Thomas Klausner, 2011/01/24
- bug#7908: png-1.5 fix for emacs-23.2 and HEAD, Eli Zaretskii, 2011/01/29
- bug#7908: png-1.5 fix for emacs-23.2 and HEAD, Chong Yidong, 2011/01/29
- bug#7908: png-1.5 fix for emacs-23.2 and HEAD, Eli Zaretskii, 2011/01/29
- bug#7908: png-1.5 fix for emacs-23.2 and HEAD, Chong Yidong, 2011/01/29
- bug#7908: png-1.5 fix for emacs-23.2 and HEAD, Eli Zaretskii, 2011/01/29
- bug#7908: png-1.5 fix for emacs-23.2 and HEAD, Eli Zaretskii, 2011/01/29
- bug#7908: png-1.5 fix for emacs-23.2 and HEAD, Chong Yidong, 2011/01/29
- bug#7908: png-1.5 fix for emacs-23.2 and HEAD, Eli Zaretskii, 2011/01/29