aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPaul Eggert2011-06-10 12:52:27 -0700
committerPaul Eggert2011-06-10 12:52:27 -0700
commitf7e13da36c982977ccfe6de1e43d8f8b3bb59c8f (patch)
tree491627511a80c3f57a0f62e2958a8a4d5776a506 /src
parent46a4ce9efbb12a47ca2cb756b271de06180923cd (diff)
downloademacs-f7e13da36c982977ccfe6de1e43d8f8b3bb59c8f.tar.gz
emacs-f7e13da36c982977ccfe6de1e43d8f8b3bb59c8f.zip
* image.c (imagemagick_load_image): Don't use garbage pointer image_wand.
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog1
-rw-r--r--src/image.c18
2 files changed, 8 insertions, 11 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index 60669c3719c..b0a3606ee5a 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -17,6 +17,7 @@
17 Remove unused locals. Remove locals to avoid shadowing. 17 Remove unused locals. Remove locals to avoid shadowing.
18 (fn_rsvg_handle_free): Remove; unused. 18 (fn_rsvg_handle_free): Remove; unused.
19 (svg_load, svg_load_image): Fix pointer signedness problem. 19 (svg_load, svg_load_image): Fix pointer signedness problem.
20 (imagemagick_load_image): Don't use garbage pointer image_wand.
20 21
21 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals. 22 * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
22 23
diff --git a/src/image.c b/src/image.c
index 8fec98f2818..3d1724492a0 100644
--- a/src/image.c
+++ b/src/image.c
@@ -7550,23 +7550,18 @@ imagemagick_load_image (struct frame *f, struct image *img,
7550 im_image = ReadImage (image_info, exception); 7550 im_image = ReadImage (image_info, exception);
7551 DestroyExceptionInfo (exception); 7551 DestroyExceptionInfo (exception);
7552 7552
7553 if (im_image != NULL) 7553 if (im_image == NULL)
7554 { 7554 goto imagemagick_no_wand;
7555 image_wand = NewMagickWandFromImage (im_image); 7555 image_wand = NewMagickWandFromImage (im_image);
7556 DestroyImage(im_image); 7556 DestroyImage(im_image);
7557 status = MagickTrue;
7558 }
7559 else
7560 status = MagickFalse;
7561 } 7557 }
7562 else 7558 else
7563 { 7559 {
7564 image_wand = NewMagickWand (); 7560 image_wand = NewMagickWand ();
7565 status = MagickReadImageBlob (image_wand, contents, size); 7561 if (MagickReadImageBlob (image_wand, contents, size) == MagickFalse)
7562 goto imagemagick_error;
7566 } 7563 }
7567 7564
7568 if (status == MagickFalse) goto imagemagick_error;
7569
7570 /* If width and/or height is set in the display spec assume we want 7565 /* If width and/or height is set in the display spec assume we want
7571 to scale to those values. If either h or w is unspecified, the 7566 to scale to those values. If either h or w is unspecified, the
7572 unspecified should be calculated from the specified to preserve 7567 unspecified should be calculated from the specified to preserve
@@ -7794,6 +7789,7 @@ imagemagick_load_image (struct frame *f, struct image *img,
7794 7789
7795 imagemagick_error: 7790 imagemagick_error:
7796 DestroyMagickWand (image_wand); 7791 DestroyMagickWand (image_wand);
7792 imagemagick_no_wand:
7797 MagickWandTerminus (); 7793 MagickWandTerminus ();
7798 /* TODO more cleanup. */ 7794 /* TODO more cleanup. */
7799 image_error ("Error parsing IMAGEMAGICK image `%s'", img->spec, Qnil); 7795 image_error ("Error parsing IMAGEMAGICK image `%s'", img->spec, Qnil);