diff options
Diffstat (limited to 'coders/psd.c')
-rw-r--r-- | coders/psd.c | 78 |
1 files changed, 42 insertions, 36 deletions
diff --git a/coders/psd.c b/coders/psd.c index 9691027ff..319628061 100644 --- a/coders/psd.c +++ b/coders/psd.c @@ -20,7 +20,7 @@ % December 2013 % % % % % -% Copyright 1999-2020 ImageMagick Studio LLC, a non-profit organization % +% Copyright 1999-2021 ImageMagick Studio LLC, a non-profit organization % % dedicated to making software imaging solutions freely available. % % % % You may not use this file except in compliance with the License. You may % @@ -325,10 +325,10 @@ static MagickBooleanType CorrectPSDAlphaBlend(const ImageInfo *image_info, #endif for (y=0; y < (ssize_t) image->rows; y++) { - register Quantum + Quantum *magick_restrict q; - register ssize_t + ssize_t x; if (status == MagickFalse) @@ -344,7 +344,7 @@ static MagickBooleanType CorrectPSDAlphaBlend(const ImageInfo *image_info, double gamma; - register ssize_t + ssize_t i; gamma=QuantumScale*GetPixelAlpha(image, q); @@ -404,10 +404,10 @@ static MagickBooleanType ApplyPSDLayerOpacity(Image *image,Quantum opacity, #endif for (y=0; y < (ssize_t) image->rows; y++) { - register Quantum + Quantum *magick_restrict q; - register ssize_t + ssize_t x; if (status == MagickFalse) @@ -476,13 +476,13 @@ static MagickBooleanType ApplyPSDOpacityMask(Image *image,const Image *mask, #endif for (y=0; y < (ssize_t) image->rows; y++) { - register Quantum + Quantum *magick_restrict q; - register Quantum + Quantum *p; - register ssize_t + ssize_t x; if (status == MagickFalse) @@ -563,7 +563,7 @@ static ssize_t DecodePSDPixels(const size_t number_compact_pixels, int pixel; - register ssize_t + ssize_t i, j; @@ -1003,13 +1003,13 @@ static MagickBooleanType ReadPSDChannelPixels(Image *image, Quantum pixel; - register const unsigned char + const unsigned char *p; - register Quantum + Quantum *q; - register ssize_t + ssize_t x; size_t @@ -1216,7 +1216,7 @@ static MagickBooleanType ReadPSDChannelRLE(Image *image,const PSDInfo *psd_info, static void Unpredict8Bit(const Image *image,unsigned char *pixels, const size_t count,const size_t row_size) { - register unsigned char + unsigned char *p; size_t @@ -1241,7 +1241,7 @@ static void Unpredict8Bit(const Image *image,unsigned char *pixels, static void Unpredict16Bit(const Image *image,unsigned char *pixels, const size_t count,const size_t row_size) { - register unsigned char + unsigned char *p; size_t @@ -1267,11 +1267,11 @@ static void Unpredict16Bit(const Image *image,unsigned char *pixels, static void Unpredict32Bit(const Image *image,unsigned char *pixels, unsigned char *output_pixels,const size_t row_size) { - register unsigned char + unsigned char *p, *q; - register ssize_t + ssize_t y; size_t @@ -1320,7 +1320,7 @@ static MagickBooleanType ReadPSDChannelZip(Image *image,const size_t channels, MagickBooleanType status; - register unsigned char + unsigned char *p; size_t @@ -1328,7 +1328,7 @@ static MagickBooleanType ReadPSDChannelZip(Image *image,const size_t channels, packet_size, row_size; - register ssize_t + ssize_t y; unsigned char @@ -1642,7 +1642,7 @@ static MagickBooleanType CheckPSDChannels(const PSDInfo *psd_info, int channel_type; - register ssize_t + ssize_t i; if (layer_info->channels < psd_info->min_channels) @@ -1687,7 +1687,7 @@ static MagickBooleanType CheckPSDChannels(const PSDInfo *psd_info, static void AttachPSDLayers(Image *image,LayerInfo *layer_info, ssize_t number_layers) { - register ssize_t + ssize_t i; ssize_t @@ -1869,7 +1869,7 @@ static MagickBooleanType ReadPSDLayersInternal(Image *image, MagickBooleanType status; - register ssize_t + ssize_t i; ssize_t @@ -2241,7 +2241,7 @@ static MagickBooleanType ReadPSDMergedImage(const ImageInfo *image_info, PSDCompressionType compression; - register ssize_t + ssize_t i; if ((image_info->number_scenes != 0) && (image_info->scene != 0)) @@ -2320,7 +2320,7 @@ static Image *ReadPSDImage(const ImageInfo *image_info,ExceptionInfo *exception) PSDInfo psd_info; - register ssize_t + ssize_t i; size_t @@ -2603,6 +2603,12 @@ static Image *ReadPSDImage(const ImageInfo *image_info,ExceptionInfo *exception) image->background_color.alpha_trait=BlendPixelTrait; (void) SetImageBackgroundColor(image,exception); merged=MergeImageLayers(image,FlattenLayer,exception); + if (merged == (Image *) NULL) + { + (void) CloseBlob(image); + image=DestroyImageList(image); + return((Image *) NULL); + } ReplaceImageInList(&image,merged); } if (profile != (StringInfo *) NULL) @@ -2781,11 +2787,11 @@ static size_t PSDPackbitsEncodeImage(Image *image,const size_t length, int count; - register ssize_t + ssize_t i, j; - register unsigned char + unsigned char *q; unsigned char @@ -2924,10 +2930,10 @@ static size_t WritePSDChannel(const PSDInfo *psd_info, QuantumInfo *quantum_info; - register const Quantum + const Quantum *p; - register ssize_t + ssize_t i; size_t @@ -3238,7 +3244,7 @@ static size_t WritePascalString(Image *image,const char *value,size_t padding) count, length; - register ssize_t + ssize_t i; /* @@ -3307,7 +3313,7 @@ static inline size_t WriteChannelSize(const PSDInfo *psd_info,Image *image, static void RemoveICCProfileFromResourceBlock(StringInfo *bim_profile) { - register const unsigned char + const unsigned char *p; size_t @@ -3330,7 +3336,7 @@ static void RemoveICCProfileFromResourceBlock(StringInfo *bim_profile) datum=GetStringInfoDatum(bim_profile); for (p=datum; (p >= datum) && (p < (datum+length-16)); ) { - register unsigned char + unsigned char *q; q=(unsigned char *) p; @@ -3362,7 +3368,7 @@ static void RemoveICCProfileFromResourceBlock(StringInfo *bim_profile) static void RemoveResolutionFromResourceBlock(StringInfo *bim_profile) { - register const unsigned char + const unsigned char *p; size_t @@ -3385,7 +3391,7 @@ static void RemoveResolutionFromResourceBlock(StringInfo *bim_profile) datum=GetStringInfoDatum(bim_profile); for (p=datum; (p >= datum) && (p < (datum+length-16)); ) { - register unsigned char + unsigned char *q; ssize_t @@ -3439,7 +3445,7 @@ static const StringInfo *GetAdditionalInformation(const ImageInfo *image_info, MagickBooleanType found; - register size_t + size_t i; size_t @@ -3538,7 +3544,7 @@ static MagickBooleanType WritePSDLayersInternal(Image *image, *layer_size_offsets, size_offset; - register ssize_t + ssize_t i; size_t @@ -3751,7 +3757,7 @@ static MagickBooleanType WritePSDImage(const ImageInfo *image_info, PSDInfo psd_info; - register ssize_t + ssize_t i; size_t |