]> git.eshelyaron.com Git - emacs.git/commitdiff
* image.c (imagemagick_load_image): Don't use garbage pointer image_wand.
authorPaul Eggert <eggert@cs.ucla.edu>
Fri, 10 Jun 2011 19:52:27 +0000 (12:52 -0700)
committerPaul Eggert <eggert@cs.ucla.edu>
Fri, 10 Jun 2011 19:52:27 +0000 (12:52 -0700)
src/ChangeLog
src/image.c

index 60669c3719c7f3b1cc3cdb0f1c5d813510320dcb..b0a3606ee5a2b1b33432c57ab13a4a2cac5a2701 100644 (file)
@@ -17,6 +17,7 @@
        Remove unused locals.  Remove locals to avoid shadowing.
        (fn_rsvg_handle_free): Remove; unused.
        (svg_load, svg_load_image): Fix pointer signedness problem.
+       (imagemagick_load_image): Don't use garbage pointer image_wand.
 
        * ftfont.c (ftfont_get_metrics, ftfont_drive_otf): Remove unused locals.
 
index 8fec98f28187343ffd5826f2c3390130b20ed8c1..3d1724492a0f3cac3000bd1aaa4dbc321ec3f088 100644 (file)
@@ -7550,23 +7550,18 @@ imagemagick_load_image (struct frame *f, struct image *img,
       im_image = ReadImage (image_info, exception);
       DestroyExceptionInfo (exception);
 
-      if (im_image != NULL)
-       {
-         image_wand = NewMagickWandFromImage (im_image);
-          DestroyImage(im_image);
-         status = MagickTrue;
-       }
-      else
-       status = MagickFalse;
+      if (im_image == NULL)
+       goto imagemagick_no_wand;
+      image_wand = NewMagickWandFromImage (im_image);
+      DestroyImage(im_image);
     }
   else
     {
       image_wand = NewMagickWand ();
-      status = MagickReadImageBlob (image_wand, contents, size);
+      if (MagickReadImageBlob (image_wand, contents, size) == MagickFalse)
+       goto imagemagick_error;
     }
 
-  if (status == MagickFalse) goto imagemagick_error;
-
   /* If width and/or height is set in the display spec assume we want
      to scale to those values.  If either h or w is unspecified, the
      unspecified should be calculated from the specified to preserve
@@ -7794,6 +7789,7 @@ imagemagick_load_image (struct frame *f, struct image *img,
 
  imagemagick_error:
   DestroyMagickWand (image_wand);
+ imagemagick_no_wand:
   MagickWandTerminus ();
   /* TODO more cleanup.  */
   image_error ("Error parsing IMAGEMAGICK image `%s'", img->spec, Qnil);