]> git.eshelyaron.com Git - emacs.git/commit
Clean up and simplify image-type setup
authorPaul Eggert <eggert@cs.ucla.edu>
Sat, 18 May 2019 01:41:22 +0000 (18:41 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Sat, 18 May 2019 01:43:28 +0000 (18:43 -0700)
commit41bf865329bbc2411203e9a90bc8dfd93ed5ef31
tree4424d4296328d277b3e653ac1e0f3a6bae67df40
parent4fbcecfaef8a3773b605c183c4da66cdabb39eef
Clean up and simplify image-type setup

This also fixes an unlikely hang involving a circular image
description.
* src/dispextern.h (struct image.type): Now pointer-to-const.
* src/image.c (struct image_type.init) [!WINDOWSNT]: Omit.
(IMAGE_TYPE_INIT): New macro.
(image_types): Now a small array-of-const, not a pointer.
(CACHE_IMAGE_TYPE): Remove; the code’s simpler without it.
(ADD_IMAGE_TYPE): Remove this macro, replacing with ...
(add_image_type): ... this equivalent function.  All uses changed.
(define_image_type): Remove.  All uses removed.
(valid_image_p): Use FOR_EACH_TAIL_SAFE to avoid Emacs hanging
if the user creates a circular description of an image.
(xbm_type, xpm_type, pbm_type, png_type, jpeg_type, tiff_type)
(gif_type, imagemagick_type, svg_type, gs_type):
Remove; now done by image_types.
(init_imagemagick_functions): Remove decl of nonexistent function.
(gs_clear_image): Remove; all uses replaced by image_clear_image.
(initialize_image_type): New function, which captures a lot
of the previously-scattered WINDOWSNT ifdefs.
(lookup_image_type): Use it.
(reset_image_types): Remove.  All uses removed.
(syms_of_image): Don’t worry about ignoring image_types for
pdumper, since it’s a constant now.
src/dispextern.h
src/emacs.c
src/image.c
src/lisp.h