More fixes for 'volatile' and setjmp/longjmp.
authorPaul Eggert <eggert@cs.ucla.edu>
Wed, 12 Sep 2012 21:34:24 +0000 (14:34 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Wed, 12 Sep 2012 21:34:24 +0000 (14:34 -0700)
commit40bce90baad677cd631c27819b32cca9c5d3a1ab
tree7c096868112d49bbe3066739bdf007c67a1919e3
parenta9f9d9de77e246af750ce5304320b0f66a085ea9
More fixes for 'volatile' and setjmp/longjmp.

* eval.c (Fdefvar, Fcondition_case): Remove unnecessary 'volatile's.
* image.c (struct png_load_context) [HAVE_PNG]: New type.
(png_load_body) [HAVE_PNG]:
(jpeg_load_body) [HAVE_JPEG]:
New function, with most of the old parent function's body.
(png_load) [HAVE_PNG]:
(jpeg_load) [HAVE_JPEG]:
Invoke the new function, to avoid longjmp munging our locals.
(struct my_jpeg_error_mgr) [HAVE_JPEG]: New members cinfo, failure_code.
(my_error_exit) [HAVE_JPEG]: Don't trust 'setjmp' to return 2 when
longjmp is passed 2, as the C standard doesn't guarantee this.
Instead, store the failure code into mgr->failure_code.
src/ChangeLog
src/eval.c
src/image.c