Mercurial > emacs
diff src/nsimage.m @ 110184:44aeafd02c21
Check all lisp types in image loader
* nsimage.m (ns_load_image): Check argument types.
* image.c: Remove all uses of gcpro.
(xpm_load): Check all lisp types.
(pbm_load): Likewise.
(png_load): Likewise.
(jpeg_load): Likewise.
(tiff_load): Likewise.
(gif_load): Likewise.
(imagemagick_load_image): Likewise.
(imagemagick_load): Likewise.
(svg_load): Likewise.
(gs_load): Likewise.
author | Andreas Schwab <schwab@linux-m68k.org> |
---|---|
date | Sat, 04 Sep 2010 21:39:34 +0200 |
parents | 9cfca8c9fb07 |
children | 4afa0b625189 |
line wrap: on
line diff
--- a/src/nsimage.m Sat Sep 04 20:47:29 2010 +0200 +++ b/src/nsimage.m Sat Sep 04 21:39:34 2010 +0200 @@ -83,19 +83,21 @@ ns_load_image (struct frame *f, struct image *img, Lisp_Object spec_file, Lisp_Object spec_data) { - EmacsImage *eImg; + EmacsImage *eImg = nil; NSSize size; NSTRACE (ns_load_image); - if (NILP (spec_data)) + if (STRINGP (spec_file)) { eImg = [EmacsImage allocInitFromFile: spec_file]; } - else + else if (STRINGP (spec_data)) { - NSData *data = [NSData dataWithBytes: SDATA (spec_data) - length: SBYTES (spec_data)]; + NSData *data; + + data = [NSData dataWithBytes: SDATA (spec_data) + length: SBYTES (spec_data)]; eImg = [[EmacsImage alloc] initWithData: data]; [eImg setPixmapData]; }