summaryrefslogtreecommitdiff
path: root/coders/psd.c
diff options
context:
space:
mode:
Diffstat (limited to 'coders/psd.c')
-rw-r--r--coders/psd.c78
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