diff --git a/coders/bgr.c b/coders/bgr.c
index 24d3393..32c16f8 100644
--- a/coders/bgr.c
+++ b/coders/bgr.c
@@ -944,7 +944,6 @@
scene++;
} while (count == (ssize_t) length);
quantum_info=DestroyQuantumInfo(quantum_info);
- InheritException(&image->exception,&canvas_image->exception);
canvas_image=DestroyImage(canvas_image);
(void) CloseBlob(image);
return(GetFirstImageInList(image));
diff --git a/coders/bmp.c b/coders/bmp.c
index 4cf51c1..509738c 100644
--- a/coders/bmp.c
+++ b/coders/bmp.c
@@ -1049,17 +1049,17 @@
break;
for (x=0; x < ((ssize_t) image->columns-1); x+=2)
{
- index=ConstrainColormapIndex(image,(*p >> 4) & 0x0f);
+ index=ConstrainColormapIndex(image,(*p >> 4) & 0x0f,exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
- index=ConstrainColormapIndex(image,*p & 0x0f);
+ index=ConstrainColormapIndex(image,*p & 0x0f,exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
p++;
}
if ((image->columns % 2) != 0)
{
- index=ConstrainColormapIndex(image,(*p >> 4) & 0xf);
+ index=ConstrainColormapIndex(image,(*p >> 4) & 0xf,exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
p++;
@@ -1093,7 +1093,7 @@
break;
for (x = (ssize_t)image->columns; x != 0; --x)
{
- index=ConstrainColormapIndex(image,*p++);
+ index=ConstrainColormapIndex(image,*p++,exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
}
diff --git a/coders/caption.c b/coders/caption.c
index dc70688..e4697d0 100644
--- a/coders/caption.c
+++ b/coders/caption.c
@@ -201,7 +201,6 @@
draw_info->interline_spacing+draw_info->stroke_width+0.5);
if (SetImageBackgroundColor(image,exception) == MagickFalse)
{
- InheritException(exception,&image->exception);
image=DestroyImageList(image);
return((Image *) NULL);
}
diff --git a/coders/cmyk.c b/coders/cmyk.c
index 7777333..2624326 100644
--- a/coders/cmyk.c
+++ b/coders/cmyk.c
@@ -1061,7 +1061,6 @@
scene++;
} while (count == (ssize_t) length);
quantum_info=DestroyQuantumInfo(quantum_info);
- InheritException(&image->exception,&canvas_image->exception);
canvas_image=DestroyImage(canvas_image);
(void) CloseBlob(image);
return(GetFirstImageInList(image));
diff --git a/coders/cut.c b/coders/cut.c
index f504d27..cf184f1 100644
--- a/coders/cut.c
+++ b/coders/cut.c
@@ -95,17 +95,14 @@
} CUTPalHeader;
-static void InsertRow(ssize_t depth,unsigned char *p,ssize_t y,Image *image)
+static void InsertRow(Image *image,ssize_t depth,unsigned char *p,ssize_t y,
+ ExceptionInfo *exception)
{
- ExceptionInfo
- *exception;
-
size_t bit; ssize_t x;
register Quantum *q;
Quantum index;
index=0;
- exception=(&image->exception);
switch (depth)
{
case 1: /* Convert bitmap scanline. */
@@ -144,35 +141,36 @@
break;
for (x=0; x < ((ssize_t) image->columns-1); x+=2)
{
- index=ConstrainColormapIndex(image,(*p >> 6) & 0x3);
+ index=ConstrainColormapIndex(image,(*p >> 6) & 0x3,exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
- index=ConstrainColormapIndex(image,(*p >> 4) & 0x3);
+ index=ConstrainColormapIndex(image,(*p >> 4) & 0x3,exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
- index=ConstrainColormapIndex(image,(*p >> 2) & 0x3);
+ index=ConstrainColormapIndex(image,(*p >> 2) & 0x3,exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
- index=ConstrainColormapIndex(image,(*p) & 0x3);
+ index=ConstrainColormapIndex(image,(*p) & 0x3,exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
p++;
}
if ((image->columns % 4) != 0)
{
- index=ConstrainColormapIndex(image,(*p >> 6) & 0x3);
+ index=ConstrainColormapIndex(image,(*p >> 6) & 0x3,exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
if ((image->columns % 4) >= 1)
{
- index=ConstrainColormapIndex(image,(*p >> 4) & 0x3);
+ index=ConstrainColormapIndex(image,(*p >> 4) & 0x3,exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
if ((image->columns % 4) >= 2)
{
- index=ConstrainColormapIndex(image,(*p >> 2) & 0x3);
+ index=ConstrainColormapIndex(image,(*p >> 2) & 0x3,
+ exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
}
@@ -191,17 +189,17 @@
break;
for (x=0; x < ((ssize_t) image->columns-1); x+=2)
{
- index=ConstrainColormapIndex(image,(*p >> 4) & 0xf);
+ index=ConstrainColormapIndex(image,(*p >> 4) & 0xf,exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
- index=ConstrainColormapIndex(image,(*p) & 0xf);
+ index=ConstrainColormapIndex(image,(*p) & 0xf,exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
p++;
}
if ((image->columns % 2) != 0)
{
- index=ConstrainColormapIndex(image,(*p >> 4) & 0xf);
+ index=ConstrainColormapIndex(image,(*p >> 4) & 0xf,exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
p++;
@@ -216,7 +214,7 @@
if (q == (Quantum *) NULL) break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- index=ConstrainColormapIndex(image,*p);
+ index=ConstrainColormapIndex(image,*p,exception);
SetPixelIndex(image,index,q);
p++;
q+=GetPixelChannels(image);
@@ -232,11 +230,8 @@
/*
Compute the number of colors in Grayed R[i]=G[i]=B[i] image
*/
-static int GetCutColors(Image *image)
+static int GetCutColors(Image *image,ExceptionInfo *exception)
{
- ExceptionInfo
- *exception;
-
Quantum
intensity,
scale_intensity;
@@ -248,7 +243,6 @@
x,
y;
- exception=(&image->exception);
intensity=0;
scale_intensity=ScaleCharToQuantum(16);
for (y=0; y < (ssize_t) image->rows; y++)
@@ -553,7 +547,7 @@
RunCountMasked=RunCount & 0x7F;
}
- InsertRow(depth,BImgBuff,i,image);
+ InsertRow(image,depth,BImgBuff,i,exception);
}
(void) SyncImage(image,exception);
@@ -563,9 +557,9 @@
if(palette==NULL)
{ /*attempt to detect binary (black&white) images*/
if ((image->storage_class == PseudoClass) &&
- (IsImageGray(image,&image->exception) != MagickFalse))
+ (IsImageGray(image,exception) != MagickFalse))
{
- if(GetCutColors(image)==2)
+ if(GetCutColors(image,exception)==2)
{
for (i=0; i < (ssize_t)image->colors; i++)
{
diff --git a/coders/dcm.c b/coders/dcm.c
index 58e1355..ccdf200 100644
--- a/coders/dcm.c
+++ b/coders/dcm.c
@@ -3863,7 +3863,8 @@
0.5)/(window_width-1))+0.5));
}
index&=mask;
- index=(int) ConstrainColormapIndex(image,(size_t) index);
+ index=(int) ConstrainColormapIndex(image,(size_t) index,
+ exception);
SetPixelIndex(image,index,q);
pixel.red=1UL*image->colormap[index].red;
pixel.green=1UL*image->colormap[index].green;
@@ -3992,7 +3993,8 @@
0.5)/(window_width-1))+0.5));
}
index&=mask;
- index=(int) ConstrainColormapIndex(image,(size_t) index);
+ index=(int) ConstrainColormapIndex(image,(size_t) index,
+ exception);
SetPixelIndex(image,(((size_t) GetPixelIndex(image,q)) |
(((size_t) index) << 8)),q);
pixel.red=1UL*image->colormap[index].red;
diff --git a/coders/dds.c b/coders/dds.c
index 56385a4..1dbc8bc 100644
--- a/coders/dds.c
+++ b/coders/dds.c
@@ -153,7 +153,7 @@
} DDSColors;
typedef MagickBooleanType
- DDSDecoder(Image *,DDSInfo *);
+ DDSDecoder(Image *,DDSInfo *,ExceptionInfo *);
/*
Macros
@@ -179,19 +179,19 @@
DDSColors *c, MagickBooleanType ignoreAlpha);
static MagickBooleanType
- ReadDXT1(Image *image, DDSInfo *dds_info);
+ ReadDXT1(Image *, DDSInfo *,ExceptionInfo *);
static MagickBooleanType
- ReadDXT3(Image *image, DDSInfo *dds_info);
+ ReadDXT3(Image *image, DDSInfo *dds_info,ExceptionInfo *);
static MagickBooleanType
- ReadDXT5(Image *image, DDSInfo *dds_info);
+ ReadDXT5(Image *image, DDSInfo *dds_info,ExceptionInfo *);
static MagickBooleanType
- ReadUncompressedRGB(Image *image, DDSInfo *dds_info);
+ ReadUncompressedRGB(Image *image, DDSInfo *dds_info,ExceptionInfo *);
static MagickBooleanType
- ReadUncompressedRGBA(Image *image, DDSInfo *dds_info);
+ ReadUncompressedRGBA(Image *image, DDSInfo *dds_info,ExceptionInfo *);
static void
SkipDXTMipmaps(Image *image, DDSInfo *dds_info, int texel_size);
@@ -392,7 +392,7 @@
return(GetFirstImageInList(image));
}
- if ((decoder)(image, &dds_info) != MagickTrue)
+ if ((decoder)(image, &dds_info, exception) != MagickTrue)
{
(void) CloseBlob(image);
return(GetFirstImageInList(image));
@@ -491,14 +491,12 @@
}
}
-static MagickBooleanType ReadDXT1(Image *image, DDSInfo *dds_info)
+static MagickBooleanType ReadDXT1(Image *image, DDSInfo *dds_info,
+ ExceptionInfo *exception)
{
DDSColors
colors;
- ExceptionInfo
- *exception;
-
register Quantum
*q;
@@ -520,7 +518,6 @@
c0,
c1;
- exception=(&image->exception);
for (y = 0; y < (ssize_t) dds_info->height; y += 4)
{
for (x = 0; x < (ssize_t) dds_info->width; x += 4)
@@ -569,14 +566,12 @@
return MagickTrue;
}
-static MagickBooleanType ReadDXT3(Image *image, DDSInfo *dds_info)
+static MagickBooleanType ReadDXT3(Image *image, DDSInfo *dds_info,
+ ExceptionInfo *exception)
{
DDSColors
colors;
- ExceptionInfo
- *exception;
-
register Quantum
*q;
@@ -601,7 +596,6 @@
c0,
c1;
- exception=(&image->exception);
for (y = 0; y < (ssize_t) dds_info->height; y += 4)
{
for (x = 0; x < (ssize_t) dds_info->width; x += 4)
@@ -658,14 +652,12 @@
return MagickTrue;
}
-static MagickBooleanType ReadDXT5(Image *image, DDSInfo *dds_info)
+static MagickBooleanType ReadDXT5(Image *image, DDSInfo *dds_info,
+ ExceptionInfo *exception)
{
DDSColors
colors;
- ExceptionInfo
- *exception;
-
MagickSizeType
alpha_bits;
@@ -694,7 +686,6 @@
c0,
c1;
- exception=(&image->exception);
for (y = 0; y < (ssize_t) dds_info->height; y += 4)
{
for (x = 0; x < (ssize_t) dds_info->width; x += 4)
@@ -762,18 +753,15 @@
return MagickTrue;
}
-static MagickBooleanType ReadUncompressedRGB(Image *image, DDSInfo *dds_info)
+static MagickBooleanType ReadUncompressedRGB(Image *image, DDSInfo *dds_info,
+ ExceptionInfo *exception)
{
- ExceptionInfo
- *exception;
-
ssize_t
x, y;
register Quantum
*q;
- exception=(&image->exception);
for (y = 0; y < (ssize_t) dds_info->height; y++)
{
q = QueueAuthenticPixels(image, 0, y, dds_info->width, 1,exception);
@@ -803,18 +791,15 @@
return MagickTrue;
}
-static MagickBooleanType ReadUncompressedRGBA(Image *image, DDSInfo *dds_info)
+static MagickBooleanType ReadUncompressedRGBA(Image *image, DDSInfo *dds_info,
+ ExceptionInfo *exception)
{
- ExceptionInfo
- *exception;
-
ssize_t
x, y;
register Quantum
*q;
- exception=(&image->exception);
for (y = 0; y < (ssize_t) dds_info->height; y++)
{
q = QueueAuthenticPixels(image, 0, y, dds_info->width, 1,exception);
diff --git a/coders/dib.c b/coders/dib.c
index 38ac86b..9c6ca4c 100644
--- a/coders/dib.c
+++ b/coders/dib.c
@@ -696,17 +696,17 @@
break;
for (x=0; x < ((ssize_t) image->columns-1); x+=2)
{
- index=ConstrainColormapIndex(image,(*p >> 4) & 0xf);
+ index=ConstrainColormapIndex(image,(*p >> 4) & 0xf,exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
- index=ConstrainColormapIndex(image,*p & 0xf);
+ index=ConstrainColormapIndex(image,*p & 0xf,exception);
SetPixelIndex(image,index,q);
p++;
q+=GetPixelChannels(image);
}
if ((image->columns % 2) != 0)
{
- index=ConstrainColormapIndex(image,(*p >> 4) & 0xf);
+ index=ConstrainColormapIndex(image,(*p >> 4) & 0xf,exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
p++;
@@ -740,7 +740,7 @@
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- index=ConstrainColormapIndex(image,*p);
+ index=ConstrainColormapIndex(image,*p,exception);
SetPixelIndex(image,index,q);
p++;
q+=GetPixelChannels(image);
diff --git a/coders/djvu.c b/coders/djvu.c
index 8a96229..34f6aef 100644
--- a/coders/djvu.c
+++ b/coders/djvu.c
@@ -321,7 +321,7 @@
* we use the RGB format!
*/
static void
-get_page_image(LoadContext *lc, ddjvu_page_t *page, int x, int y, int w, int h, const ImageInfo *image_info ) {
+get_page_image(LoadContext *lc, ddjvu_page_t *page, int x, int y, int w, int h, const ImageInfo *image_info, ExceptionInfo *exception ) {
ddjvu_format_t
*format;
@@ -394,7 +394,7 @@
for (y=0; y < (ssize_t) image->rows; y++)
{
- Quantum * o = QueueAuthenticPixels(image,0,y,image->columns,1,&image->exception);
+ Quantum * o = QueueAuthenticPixels(image,0,y,image->columns,1,exception);
if (o == (Quantum *) NULL)
break;
bit=0;
@@ -412,11 +412,11 @@
byte>>=1;
o+=GetPixelChannels(image);
}
- if (SyncAuthenticPixels(image,&image->exception) == MagickFalse)
+ if (SyncAuthenticPixels(image,exception) == MagickFalse)
break;
}
if (!image->ping)
- SyncImage(image,&image->exception);
+ SyncImage(image,exception);
} else {
#if DEBUG
printf("%s: expanding PHOTO page/image\n", __FUNCTION__);
@@ -436,7 +436,7 @@
#if DEBUG
if (i % 1000 == 0) printf("%d\n",i);
#endif
- r = QueueAuthenticPixels(image,0,i,image->columns,1,&image->exception);
+ r = QueueAuthenticPixels(image,0,i,image->columns,1,exception);
if (r == (Quantum *) NULL)
break;
for (x=0; x < (ssize_t) image->columns; x++)
@@ -447,7 +447,7 @@
r+=GetPixelChannels(image);
}
- SyncAuthenticPixels(image,&image->exception);
+ SyncAuthenticPixels(image,exception);
}
}
q=(unsigned char *) RelinquishMagickMemory(q);
@@ -673,7 +673,8 @@
#if 1 /* per_line */
/* q = QueueAuthenticPixels(image,0,0,image->columns,image->rows); */
- get_page_image(lc, lc->page, 0, 0, info.width, info.height, image_info);
+ get_page_image(lc, lc->page, 0, 0, info.width, info.height, image_info,
+ exception);
#else
int i;
for (i = 0;i< image->rows; i++)
diff --git a/coders/exr.c b/coders/exr.c
index d54f3ab..1d960e1 100644
--- a/coders/exr.c
+++ b/coders/exr.c
@@ -456,7 +456,7 @@
}
(void) ImfCloseOutputFile(file);
scanline=(ImfRgba *) RelinquishMagickMemory(scanline);
- (void) FileToImage(image,write_info->filename);
+ (void) FileToImage(image,write_info->filename,exception);
(void) RelinquishUniqueFileResource(write_info->filename);
write_info=DestroyImageInfo(write_info);
(void) CloseBlob(image);
diff --git a/coders/gif.c b/coders/gif.c
index 35f74d8..a84bc13 100644
--- a/coders/gif.c
+++ b/coders/gif.c
@@ -441,7 +441,7 @@
c=ReadBlobLZWByte(lzw_info);
if (c < 0)
break;
- index=ConstrainColormapIndex(image,(size_t) c);
+ index=ConstrainColormapIndex(image,(size_t) c,exception);
SetPixelIndex(image,index,q);
SetPixelPixelInfo(image,image->colormap+(ssize_t) index,q);
SetPixelAlpha(image,(ssize_t) index == opacity ? TransparentAlpha :
@@ -530,7 +530,7 @@
%
*/
static MagickBooleanType EncodeImage(const ImageInfo *image_info,Image *image,
- const size_t data_size)
+ const size_t data_size,ExceptionInfo *exception)
{
#define MaxCode(number_bits) ((one << (number_bits))-1)
#define MaxHashTable 5003
@@ -657,7 +657,7 @@
register ssize_t
x;
- p=GetVirtualPixels(image,0,offset,image->columns,1,&image->exception);
+ p=GetVirtualPixels(image,0,offset,image->columns,1,exception);
if (p == (const Quantum *) NULL)
break;
if (y == 0)
@@ -1856,7 +1856,8 @@
*/
c=(int) MagickMax(bits_per_pixel,2);
(void) WriteBlobByte(image,(unsigned char) c);
- status=EncodeImage(write_info,image,(size_t) MagickMax(bits_per_pixel,2)+1);
+ status=EncodeImage(write_info,image,(size_t) MagickMax(bits_per_pixel,2)+1,
+ exception);
if (status == MagickFalse)
{
global_colormap=(unsigned char *) RelinquishMagickMemory(
diff --git a/coders/gray.c b/coders/gray.c
index 7655df7..9445499 100644
--- a/coders/gray.c
+++ b/coders/gray.c
@@ -270,7 +270,6 @@
scene++;
} while (count == (ssize_t) length);
quantum_info=DestroyQuantumInfo(quantum_info);
- InheritException(&image->exception,&canvas_image->exception);
canvas_image=DestroyImage(canvas_image);
(void) CloseBlob(image);
return(GetFirstImageInList(image));
diff --git a/coders/jpeg.c b/coders/jpeg.c
index 7a853d1..5489429 100644
--- a/coders/jpeg.c
+++ b/coders/jpeg.c
@@ -285,22 +285,26 @@
ErrorManager
*error_manager;
+ ExceptionInfo
+ *exception;
+
Image
*image;
*message='\0';
error_manager=(ErrorManager *) jpeg_info->client_data;
image=error_manager->image;
+ exception=error_manager->exception;
(jpeg_info->err->format_message)(jpeg_info,message);
if (image->debug != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
"[%s] JPEG Trace: \"%s\"",image->filename,message);
if (error_manager->finished != MagickFalse)
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
- CorruptImageWarning,(char *) message,"`%s'",image->filename);
+ (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageWarning,
+ (char *) message,"`%s'",image->filename);
else
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
- CorruptImageError,(char *) message,"`%s'",image->filename);
+ (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
+ (char *) message,"`%s'",image->filename);
longjmp(error_manager->error_recovery,1);
}
@@ -1024,7 +1028,6 @@
number_pixels=(MagickSizeType) image->columns*image->rows;
if (number_pixels != 0)
return(GetFirstImageInList(image));
- InheritException(exception,&image->exception);
return(DestroyImage(image));
}
jpeg_info.client_data=(void *) &error_manager;
@@ -1288,7 +1291,7 @@
pixel=(size_t) GETJSAMPLE(*p);
else
pixel=(size_t) ((GETJSAMPLE(*p) ^ 0x80) << 4);
- index=ConstrainColormapIndex(image,pixel);
+ index=ConstrainColormapIndex(image,pixel,exception);
SetPixelIndex(image,index,q);
SetPixelPixelInfo(image,image->colormap+(ssize_t) index,q);
p++;
@@ -1326,7 +1329,7 @@
if (jpeg_info.output_components == 1)
for (x=0; x < (ssize_t) image->columns; x++)
{
- index=ConstrainColormapIndex(image,(size_t) GETJSAMPLE(*p));
+ index=ConstrainColormapIndex(image,(size_t) GETJSAMPLE(*p),exception);
SetPixelIndex(image,index,q);
SetPixelPixelInfo(image,image->colormap+(ssize_t) index,q);
p++;
diff --git a/coders/label.c b/coders/label.c
index 8f12061..6c5b620 100644
--- a/coders/label.c
+++ b/coders/label.c
@@ -165,7 +165,6 @@
status=GetMultilineTypeMetrics(image,draw_info,&metrics,exception);
if (status == MagickFalse)
{
- InheritException(exception,&image->exception);
image=DestroyImageList(image);
return((Image *) NULL);
}
@@ -192,7 +191,6 @@
0.5);
if (SetImageBackgroundColor(image,exception) == MagickFalse)
{
- InheritException(exception,&image->exception);
image=DestroyImageList(image);
return((Image *) NULL);
}
diff --git a/coders/map.c b/coders/map.c
index 49de681..82199a2 100644
--- a/coders/map.c
+++ b/coders/map.c
@@ -218,11 +218,12 @@
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
- index=ConstrainColormapIndex(image,*p);
+ index=ConstrainColormapIndex(image,*p,exception);
p++;
if (image->colors > 256)
{
- index=ConstrainColormapIndex(image,((size_t) index << 8)+(*p));
+ index=ConstrainColormapIndex(image,((size_t) index << 8)+(*p),
+ exception);
p++;
}
SetPixelIndex(image,index,q);
diff --git a/coders/mat.c b/coders/mat.c
index 690f732..2a9dfde 100644
--- a/coders/mat.c
+++ b/coders/mat.c
@@ -178,11 +178,9 @@
static const QuantumType z2qtype[4] = {GrayQuantum, BlueQuantum, GreenQuantum, RedQuantum};
-static void InsertComplexDoubleRow(double *p, int y, Image * image, double MinVal,
- double MaxVal)
+static void InsertComplexDoubleRow(Image *image,double *p,int y,double MinVal,
+ double MaxVal,ExceptionInfo *exception)
{
- ExceptionInfo
- *exception;
double f;
int x;
@@ -193,7 +191,6 @@
if (MaxVal == 0)
MaxVal = 1;
- exception=(&image->exception);
q=QueueAuthenticPixels(image,0,y,image->columns,1,exception);
if (q == (Quantum *) NULL)
return;
@@ -244,12 +241,9 @@
}
-static void InsertComplexFloatRow(float *p, int y, Image * image, double MinVal,
- double MaxVal)
+static void InsertComplexFloatRow(Image *image,float *p,int y,double MinVal,
+ double MaxVal,ExceptionInfo *exception)
{
- ExceptionInfo
- *exception;
-
double f;
int x;
register Quantum *q;
@@ -259,7 +253,6 @@
if (MaxVal == 0)
MaxVal = 1;
- exception=(&image->exception);
q = QueueAuthenticPixels(image, 0, y, image->columns, 1,exception);
if (q == (Quantum *) NULL)
return;
@@ -950,14 +943,16 @@
for (i = 0; i < (ssize_t) MATLAB_HDR.SizeY; i++)
{
ReadBlobDoublesXXX(image2, ldblk, (double *)BImgBuff);
- InsertComplexDoubleRow((double *)BImgBuff, i, image, MinVal, MaxVal);
+ InsertComplexDoubleRow(image, (double *)BImgBuff, i, MinVal, MaxVal,
+ exception);
}
if (CellType==miSINGLE)
for (i = 0; i < (ssize_t) MATLAB_HDR.SizeY; i++)
{
ReadBlobFloatsXXX(image2, ldblk, (float *)BImgBuff);
- InsertComplexFloatRow((float *)BImgBuff, i, image, MinVal, MaxVal);
+ InsertComplexFloatRow(image,(float *)BImgBuff,i,MinVal,MaxVal,
+ exception);
}
}
diff --git a/coders/miff.c b/coders/miff.c
index b08525f..6e4a2a1 100644
--- a/coders/miff.c
+++ b/coders/miff.c
@@ -199,7 +199,7 @@
}
static void PushRunlengthPacket(Image *image,const unsigned char *pixels,
- size_t *length,PixelInfo *pixel)
+ size_t *length,PixelInfo *pixel,ExceptionInfo *exception)
{
const unsigned char
*p;
@@ -213,24 +213,25 @@
case 32:
{
pixel->index=ConstrainColormapIndex(image,
- (*p << 24) | (*(p+1) << 16) | (*(p+2) << 8) | *(p+3));
+ (*p << 24) | (*(p+1) << 16) | (*(p+2) << 8) | *(p+3),exception);
p+=4;
break;
}
case 16:
{
- pixel->index=ConstrainColormapIndex(image,(*p << 8) | *(p+1));
+ pixel->index=ConstrainColormapIndex(image,(*p << 8) | *(p+1),
+ exception);
p+=2;
break;
}
case 8:
{
- pixel->index=ConstrainColormapIndex(image,*p);
+ pixel->index=ConstrainColormapIndex(image,*p,exception);
p++;
break;
}
default:
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CorruptImageError,"ImageDepthNotSupported","`%s'",image->filename);
}
switch (image->depth)
@@ -274,7 +275,7 @@
break;
}
default:
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CorruptImageError,"ImageDepthNotSupported","`%s'",image->filename);
}
*length=(size_t) (*p++)+1;
@@ -352,8 +353,8 @@
break;
}
default:
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
- CorruptImageError,"ImageDepthNotSupported","`%s'",image->filename);
+ (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
+ "ImageDepthNotSupported","`%s'",image->filename);
}
*length=(size_t) (*p++)+1;
}
@@ -1405,7 +1406,7 @@
if (length == 0)
{
count=ReadBlob(image,packet_size,pixels);
- PushRunlengthPacket(image,pixels,&length,&pixel);
+ PushRunlengthPacket(image,pixels,&length,&pixel,exception);
}
length--;
if (image->storage_class == PseudoClass)
@@ -1646,7 +1647,7 @@
*/
static unsigned char *PopRunlengthPacket(Image *image,unsigned char *pixels,
- size_t length,PixelInfo *pixel)
+ size_t length,PixelInfo *pixel,ExceptionInfo *exception)
{
if (image->storage_class != DirectClass)
{
@@ -1665,7 +1666,7 @@
break;
}
default:
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CorruptImageError,"ImageDepthNotSupported","`%s'",image->filename);
}
switch (image->depth)
@@ -1708,7 +1709,7 @@
break;
}
default:
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CorruptImageError,"ImageDepthNotSupported","`%s'",image->filename);
}
*pixels++=(unsigned char) length;
@@ -1788,8 +1789,8 @@
break;
}
default:
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
- CorruptImageError,"ImageDepthNotSupported","`%s'",image->filename);
+ (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
+ "ImageDepthNotSupported","`%s'",image->filename);
}
*pixels++=(unsigned char) length;
return(pixels);
@@ -2418,13 +2419,13 @@
length++;
else
{
- q=PopRunlengthPacket(image,q,length,&pixel);
+ q=PopRunlengthPacket(image,q,length,&pixel,exception);
length=0;
}
SetPixelInfo(image,p,&pixel);
p+=GetPixelChannels(image);
}
- q=PopRunlengthPacket(image,q,length,&pixel);
+ q=PopRunlengthPacket(image,q,length,&pixel,exception);
(void) WriteBlob(image,(size_t) (q-pixels),pixels);
break;
}
diff --git a/coders/msl.c b/coders/msl.c
index 8e7b0b0..2c10ce1 100644
--- a/coders/msl.c
+++ b/coders/msl.c
@@ -572,9 +572,10 @@
msl_info->draw_info[n-1]);
if (image == (Image *) NULL)
msl_info->attributes[n]=AcquireImage(msl_info->image_info[n],
- &image->exception);
+ msl_info->exception);
else
- msl_info->attributes[n]=CloneImage(image,0,0,MagickTrue,&image->exception);
+ msl_info->attributes[n]=CloneImage(image,0,0,MagickTrue,
+ msl_info->exception);
msl_info->image[n]=(Image *) image;
if ((msl_info->image_info[n] == (ImageInfo *) NULL) ||
(msl_info->attributes[n] == (Image *) NULL))
@@ -743,7 +744,7 @@
}
channel_mask=SetPixelChannelMask(msl_info->image[n],channel);
noise_image=AddNoiseImage(msl_info->image[n],noise,1.0,
- &msl_info->image[n]->exception);
+ msl_info->exception);
(void) SetPixelChannelMap(msl_info->image[n],channel_mask);
if (noise_image == (Image *) NULL)
break;
@@ -1083,7 +1084,7 @@
draw_info->affine.ty=affine.rx*current.tx+affine.sy*current.ty+
affine.ty;
(void) AnnotateImage(msl_info->image[n],draw_info,
- &msl_info->image[n]->exception);
+ msl_info->exception);
draw_info=DestroyDrawInfo(draw_info);
break;
}
@@ -1138,7 +1139,7 @@
}
}
append_image=AppendImages(msl_info->image[n],stack,
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (append_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -1241,7 +1242,7 @@
channel_mask=SetPixelChannelMask(msl_info->image[n],channel);
blur_image=BlurImage(msl_info->image[n],geometry_info.rho,
geometry_info.sigma,geometry_info.xi,
- &msl_info->image[n]->exception);
+ msl_info->exception);
(void) SetPixelChannelMap(msl_info->image[n],channel_mask);
if (blur_image == (Image *) NULL)
break;
@@ -1352,7 +1353,7 @@
}
}
border_image=BorderImage(msl_info->image[n],&geometry,
- msl_info->image[n]->compose,&msl_info->image[n]->exception);
+ msl_info->image[n]->compose,msl_info->exception);
if (border_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -1414,7 +1415,7 @@
if (LocaleCompare(keyword,"fill") == 0)
{
(void) QueryColorCompliance(value,AllCompliance,
- &target,&msl_info->image[n]->exception);
+ &target,msl_info->exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",
@@ -1430,7 +1431,7 @@
}
}
colorize_image=ColorizeImage(msl_info->image[n],blend,&target,
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (colorize_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -1511,7 +1512,7 @@
*newImage;
newImage=CharcoalImage(msl_info->image[n],radius,sigma,bias,
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (newImage == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -1616,7 +1617,7 @@
}
}
chop_image=ChopImage(msl_info->image[n],&geometry,
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (chop_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -1742,7 +1743,7 @@
}
(void) FloodfillPaintImage(msl_info->image[n],draw_info,&target,
geometry.x,geometry.y,paint_method == FloodfillMethod ?
- MagickFalse : MagickTrue,&msl_info->image[n]->exception);
+ MagickFalse : MagickTrue,msl_info->exception);
draw_info=DestroyDrawInfo(draw_info);
break;
}
@@ -2150,7 +2151,7 @@
}
}
(void) ContrastImage(msl_info->image[n],sharpen,
- &msl_info->image[n]->exception);
+ msl_info->exception);
break;
}
if (LocaleCompare((const char *) tag,"crop") == 0)
@@ -2248,7 +2249,7 @@
}
}
crop_image=CropImage(msl_info->image[n],&geometry,
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (crop_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -2333,7 +2334,7 @@
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
despeckle_image=DespeckleImage(msl_info->image[n],
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (despeckle_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -2367,7 +2368,7 @@
}
}
(void) DisplayImages(msl_info->image_info[n],msl_info->image[n],
- &msl_info->image[n]->exception);
+ msl_info->exception);
break;
}
if (LocaleCompare((const char *) tag,"draw") == 0)
@@ -2775,7 +2776,7 @@
}
}
edge_image=EdgeImage(msl_info->image[n],geometry_info.rho,
- geometry_info.sigma,&msl_info->image[n]->exception);
+ geometry_info.sigma,msl_info->exception);
if (edge_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -2854,7 +2855,7 @@
}
}
emboss_image=EmbossImage(msl_info->image[n],geometry_info.rho,
- geometry_info.sigma,&msl_info->image[n]->exception);
+ geometry_info.sigma,msl_info->exception);
if (emboss_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -2886,7 +2887,7 @@
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
enhance_image=EnhanceImage(msl_info->image[n],
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (enhance_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -2923,7 +2924,7 @@
}
}
(void) EqualizeImage(msl_info->image[n],
- &msl_info->image[n]->exception);
+ msl_info->exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedElement",(const char *) tag);
@@ -2948,7 +2949,7 @@
*newImage;
newImage=MergeImageLayers(msl_info->image[n],FlattenLayer,
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (newImage == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -2981,7 +2982,7 @@
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
flip_image=FlipImage(msl_info->image[n],
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (flip_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -3013,7 +3014,7 @@
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
flop_image=FlopImage(msl_info->image[n],
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (flop_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -3158,7 +3159,7 @@
frame_info.width=msl_info->image[n]->columns+2*frame_info.x;
frame_info.height=msl_info->image[n]->rows+2*frame_info.y;
frame_image=FrameImage(msl_info->image[n],&frame_info,
- msl_info->image[n]->compose,&msl_info->image[n]->exception);
+ msl_info->image[n]->compose,msl_info->exception);
if (frame_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -3271,7 +3272,7 @@
(void) FormatLocaleString(gamma,MaxTextExtent,"%g,%g,%g",
(double) pixel.red,(double) pixel.green,(double) pixel.blue);
(void) GammaImage(msl_info->image[n],atof(gamma),
- &msl_info->image[n]->exception);
+ msl_info->exception);
break;
}
else if (LocaleCompare((const char *) tag,"get") == 0)
@@ -3457,7 +3458,7 @@
}
}
implode_image=ImplodeImage(msl_info->image[n],geometry_info.rho,
- msl_info->image[n]->interpolate,&msl_info->image[n]->exception);
+ msl_info->image[n]->interpolate,msl_info->exception);
if (implode_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -3534,7 +3535,7 @@
/* process image */
LevelImage(msl_info->image[n],levelBlack,levelWhite,levelGamma,
- &msl_info->image[n]->exception);
+ msl_info->exception);
break;
}
}
@@ -3566,7 +3567,7 @@
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
magnify_image=MagnifyImage(msl_info->image[n],
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (magnify_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -3790,7 +3791,7 @@
channel_mask=SetPixelChannelMask(msl_info->image[n],AlphaChannel);
(void) FloodfillPaintImage(msl_info->image[n],draw_info,&target,
geometry.x,geometry.y,paint_method == FloodfillMethod ?
- MagickFalse : MagickTrue,&msl_info->image[n]->exception);
+ MagickFalse : MagickTrue,msl_info->exception);
(void) SetPixelChannelMap(msl_info->image[n],channel_mask);
draw_info=DestroyDrawInfo(draw_info);
break;
@@ -3856,7 +3857,7 @@
}
median_image=StatisticImage(msl_info->image[n],MedianStatistic,
(size_t) geometry_info.rho,(size_t) geometry_info.sigma,
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (median_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -3888,7 +3889,7 @@
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
}
minify_image=MinifyImage(msl_info->image[n],
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (minify_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -4018,7 +4019,7 @@
(void) FormatLocaleString(modulate,MaxTextExtent,"%g,%g,%g",
geometry_info.rho,geometry_info.sigma,geometry_info.xi);
(void) ModulateImage(msl_info->image[n],modulate,
- &msl_info->image[n]->exception);
+ msl_info->exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedElement",(const char *) tag);
@@ -4094,7 +4095,7 @@
}
channel_mask=SetPixelChannelMask(msl_info->image[n],channel);
(void) NegateImage(msl_info->image[n],gray,
- &msl_info->image[n]->exception);
+ msl_info->exception);
(void) SetPixelChannelMap(msl_info->image[n],channel_mask);
break;
}
@@ -4144,7 +4145,7 @@
}
}
(void) NormalizeImage(msl_info->image[n],
- &msl_info->image[n]->exception);
+ msl_info->exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedElement",(const char *) tag);
@@ -4212,7 +4213,7 @@
}
}
paint_image=OilPaintImage(msl_info->image[n],geometry_info.rho,
- geometry_info.sigma,&msl_info->image[n]->exception);
+ geometry_info.sigma,msl_info->exception);
if (paint_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -4293,7 +4294,7 @@
}
channel_mask=SetPixelChannelMask(msl_info->image[n],channel);
(void) OpaquePaintImage(msl_info->image[n],&target,&fill_color,
- MagickFalse,&msl_info->image[n]->exception);
+ MagickFalse,msl_info->exception);
(void) SetPixelChannelMap(msl_info->image[n],channel_mask);
break;
}
@@ -4878,7 +4879,7 @@
draw_info->affine.ty=affine.rx*current.tx+affine.sy*current.ty+
affine.ty;
status=GetTypeMetrics(msl_info->attributes[n],draw_info,&metrics,
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (status != MagickFalse)
{
Image
@@ -5011,7 +5012,7 @@
}
}
(void) RaiseImage(msl_info->image[n],&geometry,raise,
- &msl_info->image[n]->exception);
+ msl_info->exception);
break;
}
if (LocaleCompare((const char *) tag,"read") == 0)
@@ -5115,7 +5116,7 @@
}
paint_image=StatisticImage(msl_info->image[n],NonpeakStatistic,
(size_t) geometry_info.rho,(size_t) geometry_info.sigma,
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (paint_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -5351,7 +5352,7 @@
msl_info->image[n]->y_resolution))+0.5);
resample_image=ResizeImage(msl_info->image[n],width,height,
msl_info->image[n]->filter,msl_info->image[n]->blur,
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (resample_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -5466,7 +5467,7 @@
}
}
resize_image=ResizeImage(msl_info->image[n],geometry.width,
- geometry.height,filter,blur,&msl_info->image[n]->exception);
+ geometry.height,filter,blur,msl_info->exception);
if (resize_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -5546,7 +5547,7 @@
}
}
roll_image=RollImage(msl_info->image[n],geometry.x,geometry.y,
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (roll_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -5623,7 +5624,7 @@
Image
*newImage;
- newImage=RollImage(msl_info->image[n], x, y, &msl_info->image[n]->exception);
+ newImage=RollImage(msl_info->image[n], x, y, msl_info->exception);
if (newImage == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -5692,7 +5693,7 @@
}
}
rotate_image=RotateImage(msl_info->image[n],geometry_info.rho,
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (rotate_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -5745,7 +5746,7 @@
Image
*newImage;
- newImage=RotateImage(msl_info->image[n], degrees, &msl_info->image[n]->exception);
+ newImage=RotateImage(msl_info->image[n], degrees, msl_info->exception);
if (newImage == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -5829,7 +5830,7 @@
}
}
sample_image=SampleImage(msl_info->image[n],geometry.width,
- geometry.height,&msl_info->image[n]->exception);
+ geometry.height,msl_info->exception);
if (sample_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -5906,7 +5907,7 @@
}
}
scale_image=ScaleImage(msl_info->image[n],geometry.width,
- geometry.height,&msl_info->image[n]->exception);
+ geometry.height,msl_info->exception);
if (scale_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -6259,7 +6260,7 @@
}
}
shade_image=ShadeImage(msl_info->image[n],gray,geometry_info.rho,
- geometry_info.sigma,&msl_info->image[n]->exception);
+ geometry_info.sigma,msl_info->exception);
if (shade_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -6361,7 +6362,7 @@
}
shadow_image=ShadowImage(msl_info->image[n],geometry_info.rho,
geometry_info.sigma,(ssize_t) ceil(geometry_info.xi-0.5),(ssize_t)
- ceil(geometry_info.psi-0.5),&msl_info->image[n]->exception);
+ ceil(geometry_info.psi-0.5),msl_info->exception);
if (shadow_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -6442,7 +6443,7 @@
*newImage;
newImage=SharpenImage(msl_info->image[n],radius,sigma,bias,
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (newImage == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -6528,7 +6529,7 @@
newImage=ShaveImage(msl_info->image[n], &rectInfo,
- &msl_info->image[n]->exception);
+ msl_info->exception);
if (newImage == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -6622,7 +6623,7 @@
}
}
shear_image=ShearImage(msl_info->image[n],geometry_info.rho,
- geometry_info.sigma,&msl_info->image[n]->exception);
+ geometry_info.sigma,msl_info->exception);
if (shear_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -6717,7 +6718,7 @@
}
}
(void) SolarizeImage(msl_info->image[n],geometry_info.rho,
- &msl_info->image[n]->exception);
+ msl_info->exception);
break;
}
if (LocaleCompare((const char *) tag,"spread") == 0)
@@ -6780,7 +6781,7 @@
}
}
spread_image=SpreadImage(msl_info->image[n],geometry_info.rho,
- msl_info->image[n]->interpolate,&msl_info->image[n]->exception);
+ msl_info->image[n]->interpolate,msl_info->exception);
if (spread_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -6844,7 +6845,7 @@
Image
*newImage;
- newImage=SteganoImage(msl_info->image[n], watermark, &msl_info->image[n]->exception);
+ newImage=SteganoImage(msl_info->image[n], watermark, msl_info->exception);
if (newImage == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -6909,7 +6910,7 @@
Image
*newImage;
- newImage=StereoImage(msl_info->image[n], stereoImage, &msl_info->image[n]->exception);
+ newImage=StereoImage(msl_info->image[n], stereoImage, msl_info->exception);
if (newImage == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -6980,8 +6981,9 @@
ThrowMSLException(OptionError,"NoSuchImage",(const char *) tag);
break;
}
- swap=CloneImage(p,0,0,MagickTrue,&p->exception);
- ReplaceImageInList(&p,CloneImage(q,0,0,MagickTrue,&q->exception));
+ swap=CloneImage(p,0,0,MagickTrue,msl_info->exception);
+ ReplaceImageInList(&p,CloneImage(q,0,0,MagickTrue,
+ msl_info->exception));
ReplaceImageInList(&q,swap);
msl_info->image[n]=GetFirstImageInList(q);
break;
@@ -7046,7 +7048,7 @@
}
}
swirl_image=SwirlImage(msl_info->image[n],geometry_info.rho,
- msl_info->image[n]->interpolate,&msl_info->image[n]->exception);
+ msl_info->image[n]->interpolate,msl_info->exception);
if (swirl_image == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -7221,7 +7223,7 @@
(void) QueryColorCompliance(value,AllCompliance,&target,
&exception);
(void) TransparentPaintImage(msl_info->image[n],&target,
- TransparentAlpha,MagickFalse,&msl_info->image[n]->exception);
+ TransparentAlpha,MagickFalse,msl_info->exception);
break;
}
ThrowMSLException(OptionError,"UnrecognizedAttribute",keyword);
@@ -7257,7 +7259,7 @@
rectInfo.height = rectInfo.width = 0;
rectInfo.x = rectInfo.y = 0;
- newImage=CropImage(msl_info->image[n],&rectInfo, &msl_info->image[n]->exception);
+ newImage=CropImage(msl_info->image[n],&rectInfo, msl_info->exception);
if (newImage == (Image *) NULL)
break;
msl_info->image[n]=DestroyImage(msl_info->image[n]);
@@ -7309,7 +7311,7 @@
/* process */
{
(void) WriteImage(msl_info->image_info[n], msl_info->image[n],
- &msl_info->image[n]->exception);
+ msl_info->exception);
break;
}
}
@@ -7814,7 +7816,7 @@
msl_info.group_info);
if (*image == (Image *) NULL)
*image=(*msl_info.image);
- if ((*msl_info.image)->exception.severity != UndefinedException)
+ if (msl_info.exception->severity != UndefinedException)
return(MagickFalse);
return(MagickTrue);
}
diff --git a/coders/palm.c b/coders/palm.c
index 9735b58..fd1fa99 100644
--- a/coders/palm.c
+++ b/coders/palm.c
@@ -370,7 +370,7 @@
for (i=0; i < (ssize_t) count; i++)
{
ReadBlobByte(image);
- index=ConstrainColormapIndex(image,255-i);
+ index=ConstrainColormapIndex(image,255-i,exception);
image->colormap[(int) index].red=
ScaleCharToQuantum((unsigned char) ReadBlobByte(image));
image->colormap[(int) index].green=
@@ -383,7 +383,7 @@
{
for (i=0; i < (ssize_t) (1L << bits_per_pixel); i++)
{
- index=ConstrainColormapIndex(image,255-i);
+ index=ConstrainColormapIndex(image,255-i,exception);
image->colormap[(int) index].red=
ScaleCharToQuantum(PalmPalette[i][0]);
image->colormap[(int) index].green=
diff --git a/coders/pcd.c b/coders/pcd.c
index bcf7126..15fb981 100644
--- a/coders/pcd.c
+++ b/coders/pcd.c
@@ -295,7 +295,7 @@
r++;
if ((row > image->rows) || (r == (PCDTable *) NULL))
{
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CorruptImageWarning,"SkipToSyncByte","`%s'",image->filename);
while ((sum & 0x00fff000) != 0x00fff000)
PCDGetBits(8);
@@ -983,7 +983,7 @@
if ((geometry.height % 2) != 0)
geometry.height--;
tile_image=ResizeImage(image,geometry.width,geometry.height,TriangleFilter,
- 1.0,&image->exception);
+ 1.0,exception);
if (tile_image == (Image *) NULL)
return(MagickFalse);
flags=ParseGeometry(page_geometry,&geometry_info);
@@ -1006,7 +1006,7 @@
border_info.width=(geometry.width-tile_image->columns+1) >> 1;
border_info.height=(geometry.height-tile_image->rows+1) >> 1;
bordered_image=BorderImage(tile_image,&border_info,image->compose,
- &image->exception);
+ exception);
if (bordered_image == (Image *) NULL)
return(MagickFalse);
tile_image=DestroyImage(tile_image);
@@ -1016,7 +1016,7 @@
if (IsRGBColorspace(image->colorspace) == MagickFalse)
(void) TransformImageColorspace(tile_image,YCCColorspace,exception);
downsample_image=ResizeImage(tile_image,tile_image->columns/2,
- tile_image->rows/2,TriangleFilter,1.0,&image->exception);
+ tile_image->rows/2,TriangleFilter,1.0,exception);
if (downsample_image == (Image *) NULL)
return(MagickFalse);
/*
@@ -1024,8 +1024,7 @@
*/
for (y=0; y < (ssize_t) tile_image->rows; y+=2)
{
- p=GetVirtualPixels(tile_image,0,y,tile_image->columns,2,
- &tile_image->exception);
+ p=GetVirtualPixels(tile_image,0,y,tile_image->columns,2,exception);
if (p == (const Quantum *) NULL)
break;
for (x=0; x < (ssize_t) (tile_image->columns << 1); x++)
@@ -1033,8 +1032,8 @@
(void) WriteBlobByte(image,ScaleQuantumToChar(GetPixelRed(tile_image,p)));
p+=GetPixelChannels(tile_image);
}
- q=GetVirtualPixels(downsample_image,0,y >> 1,downsample_image->columns,
- 1,&downsample_image->exception);
+ q=GetVirtualPixels(downsample_image,0,y >> 1,downsample_image->columns,1,
+ exception);
if (q == (Quantum *) NULL)
break;
for (x=0; x < (ssize_t) downsample_image->columns; x++)
@@ -1043,8 +1042,8 @@
GetPixelGreen(tile_image,q)));
q++;
}
- q=GetVirtualPixels(downsample_image,0,y >> 1,downsample_image->columns,
- 1,&downsample_image->exception);
+ q=GetVirtualPixels(downsample_image,0,y >> 1,downsample_image->columns,1,
+ exception);
if (q == (Quantum *) NULL)
break;
for (x=0; x < (ssize_t) downsample_image->columns; x++)
diff --git a/coders/pcl.c b/coders/pcl.c
index 4386e29..6a36b2b 100644
--- a/coders/pcl.c
+++ b/coders/pcl.c
@@ -374,7 +374,7 @@
Image
*cmyk_image;
- cmyk_image=ConsolidateCMYKImages(image,&image->exception);
+ cmyk_image=ConsolidateCMYKImages(image,exception);
if (cmyk_image != (Image *) NULL)
{
image=DestroyImageList(image);
diff --git a/coders/pdb.c b/coders/pdb.c
index 2a0f2a8..3ba04d4 100644
--- a/coders/pdb.c
+++ b/coders/pdb.c
@@ -468,16 +468,16 @@
break;
for (x=0; x < (ssize_t) image->columns; x+=4)
{
- index=ConstrainColormapIndex(image,3UL-((*p >> 6) & 0x03));
+ index=ConstrainColormapIndex(image,3UL-((*p >> 6) & 0x03),exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
- index=ConstrainColormapIndex(image,3UL-((*p >> 4) & 0x03));
+ index=ConstrainColormapIndex(image,3UL-((*p >> 4) & 0x03),exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
- index=ConstrainColormapIndex(image,3UL-((*p >> 2) & 0x03));
+ index=ConstrainColormapIndex(image,3UL-((*p >> 2) & 0x03),exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
- index=ConstrainColormapIndex(image,3UL-((*p) & 0x03));
+ index=ConstrainColormapIndex(image,3UL-((*p) & 0x03),exception);
SetPixelIndex(image,index,q);
p++;
q+=GetPixelChannels(image);
@@ -504,10 +504,10 @@
break;
for (x=0; x < (ssize_t) image->columns; x+=2)
{
- index=ConstrainColormapIndex(image,15UL-((*p >> 4) & 0x0f));
+ index=ConstrainColormapIndex(image,15UL-((*p >> 4) & 0x0f),exception);
SetPixelIndex(image,index,q);
q+=GetPixelChannels(image);
- index=ConstrainColormapIndex(image,15UL-((*p) & 0x0f));
+ index=ConstrainColormapIndex(image,15UL-((*p) & 0x0f),exception);
SetPixelIndex(image,index,q);
p++;
q+=GetPixelChannels(image);
diff --git a/coders/pict.c b/coders/pict.c
index 4a805ff..95c2f1c 100644
--- a/coders/pict.c
+++ b/coders/pict.c
@@ -427,7 +427,8 @@
}
static unsigned char *DecodeImage(Image *blob,Image *image,
- size_t bytes_per_line,const unsigned int bits_per_pixel,size_t *extent)
+ size_t bytes_per_line,const unsigned int bits_per_pixel,size_t *extent,
+ ExceptionInfo *exception)
{
MagickSizeType
number_pixels;
@@ -501,7 +502,7 @@
p=ExpandBuffer(scanline,&number_pixels,bits_per_pixel);
if ((q+number_pixels) > (pixels+(*extent)))
{
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CorruptImageError,"UnableToUncompressImage","`%s'",
image->filename);
break;
@@ -523,7 +524,7 @@
scanline_length=1UL*ReadBlobByte(blob);
if (scanline_length >= row_bytes)
{
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CorruptImageError,"UnableToUncompressImage","`%s'",image->filename);
break;
}
@@ -1144,10 +1145,11 @@
}
if ((code != 0x9a) && (code != 0x9b) &&
(bytes_per_line & 0x8000) == 0)
- pixels=DecodeImage(image,tile_image,1UL*bytes_per_line,1,&extent);
+ pixels=DecodeImage(image,tile_image,1UL*bytes_per_line,1,&extent,
+ exception);
else
pixels=DecodeImage(image,tile_image,1UL*bytes_per_line,1U*
- pixmap.bits_per_pixel,&extent);
+ pixmap.bits_per_pixel,&extent,exception);
if (pixels == (unsigned char *) NULL)
{
tile_image=DestroyImage(tile_image);
@@ -1170,7 +1172,7 @@
{
if (tile_image->storage_class == PseudoClass)
{
- index=ConstrainColormapIndex(tile_image,*p);
+ index=ConstrainColormapIndex(tile_image,*p,exception);
SetPixelIndex(tile_image,index,q);
SetPixelRed(tile_image,
tile_image->colormap[(ssize_t) index].red,q);
diff --git a/coders/plasma.c b/coders/plasma.c
index a6cfe10..914c284 100644
--- a/coders/plasma.c
+++ b/coders/plasma.c
@@ -98,18 +98,14 @@
}
static inline void PlasmaPixel(Image *image,RandomInfo *random_info,double x,
- double y)
+ double y,ExceptionInfo *exception)
{
- ExceptionInfo
- *exception;
-
QuantumAny
range;
register Quantum
*q;
- exception=(&image->exception);
q=GetAuthenticPixels(image,(ssize_t) ceil(x-0.5),(ssize_t) ceil(y-0.5),1,1,
exception);
if (q == (Quantum *) NULL)
@@ -193,20 +189,20 @@
Seed pixels before recursion.
*/
random_info=AcquireRandomInfo();
- PlasmaPixel(image,random_info,segment_info.x1,segment_info.y1);
+ PlasmaPixel(image,random_info,segment_info.x1,segment_info.y1,exception);
PlasmaPixel(image,random_info,segment_info.x1,(segment_info.y1+
- segment_info.y2)/2);
- PlasmaPixel(image,random_info,segment_info.x1,segment_info.y2);
+ segment_info.y2)/2,exception);
+ PlasmaPixel(image,random_info,segment_info.x1,segment_info.y2,exception);
PlasmaPixel(image,random_info,(segment_info.x1+segment_info.x2)/2,
- segment_info.y1);
+ segment_info.y1,exception);
PlasmaPixel(image,random_info,(segment_info.x1+segment_info.x2)/2,
- (segment_info.y1+segment_info.y2)/2);
+ (segment_info.y1+segment_info.y2)/2,exception);
PlasmaPixel(image,random_info,(segment_info.x1+segment_info.x2)/2,
- segment_info.y2);
- PlasmaPixel(image,random_info,segment_info.x2,segment_info.y1);
+ segment_info.y2,exception);
+ PlasmaPixel(image,random_info,segment_info.x2,segment_info.y1,exception);
PlasmaPixel(image,random_info,segment_info.x2,(segment_info.y1+
- segment_info.y2)/2);
- PlasmaPixel(image,random_info,segment_info.x2,segment_info.y2);
+ segment_info.y2)/2,exception);
+ PlasmaPixel(image,random_info,segment_info.x2,segment_info.y2,exception);
random_info=DestroyRandomInfo(random_info);
}
i=(size_t) MagickMax(image->columns,image->rows)/2;
diff --git a/coders/png.c b/coders/png.c
index e67d684..1dfb11c 100644
--- a/coders/png.c
+++ b/coders/png.c
@@ -947,7 +947,7 @@
#if (MAGICKCORE_QUANTUM_DEPTH >= 16)
static MagickBooleanType
-LosslessReduceDepthOK(Image *image)
+LosslessReduceDepthOK(Image *image,ExceptionInfo *exception)
{
/* Reduce bit depth if it can be reduced losslessly from 16+ to 8.
*
@@ -1009,7 +1009,7 @@
for (y=0; y < (ssize_t) image->rows; y++)
{
- p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ p=GetVirtualPixels(image,0,y,image->columns,1,exception);
if (p == (const Quantum *) NULL)
{
@@ -1127,7 +1127,7 @@
% %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
-static MagickBooleanType ImageIsGray(Image *image)
+static MagickBooleanType ImageIsGray(Image *image,ExceptionInfo *exception)
{
register const Quantum
*p;
@@ -1151,7 +1151,7 @@
}
for (y=0; y < (ssize_t) image->rows; y++)
{
- p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ p=GetVirtualPixels(image,0,y,image->columns,1,exception);
if (p == (const Quantum *) NULL)
return(MagickFalse);
for (x=(ssize_t) image->columns-1; x >= 0; x--)
@@ -1720,19 +1720,35 @@
return((long) ((p[0] << 24) | (p[1] << 16) | (p[2] << 8) | p[3]));
}
-static void MagickPNGErrorHandler(png_struct *ping,png_const_charp message)
+typedef struct _PNGErrorInfo
{
Image
*image;
- image=(Image *) png_get_error_ptr(ping);
+ ExceptionInfo
+ *exception;
+} PNGErrorInfo;
- if (image->debug != MagickFalse)
- (void) LogMagickEvent(CoderEvent,GetMagickModule(),
- " libpng-%s error: %s", PNG_LIBPNG_VER_STRING,message);
+static void MagickPNGErrorHandler(png_struct *ping,png_const_charp message)
+{
+ ExceptionInfo
+ *exception;
- (void) ThrowMagickException(&image->exception,GetMagickModule(),CoderError,
- message,"`%s'",image->filename);
+ Image
+ *image;
+
+ PNGErrorInfo
+ *error_info;
+
+ error_info=(PNGErrorInfo *) png_get_error_ptr(ping);
+ image=error_info->image;
+ exception=error_info->exception;
+
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+ " libpng-%s error: %s", PNG_LIBPNG_VER_STRING,message);
+
+ (void) ThrowMagickException(exception,GetMagickModule(),CoderError,message,
+ "`%s'",image->filename);
#if (PNG_LIBPNG_VER < 10500)
/* A warning about deprecated use of jmpbuf here is unavoidable if you
@@ -1746,18 +1762,25 @@
static void MagickPNGWarningHandler(png_struct *ping,png_const_charp message)
{
+ ExceptionInfo
+ *exception;
+
Image
*image;
+ PNGErrorInfo
+ *error_info;
+
if (LocaleCompare(message, "Missing PLTE before tRNS") == 0)
png_error(ping, message);
- image=(Image *) png_get_error_ptr(ping);
- if (image->debug != MagickFalse)
- (void) LogMagickEvent(CoderEvent,GetMagickModule(),
- " libpng-%s warning: %s", PNG_LIBPNG_VER_STRING,message);
+ error_info=(PNGErrorInfo *) png_get_error_ptr(ping);
+ image=error_info->image;
+ exception=error_info->exception;
+ (void) LogMagickEvent(CoderEvent,GetMagickModule(),
+ " libpng-%s warning: %s", PNG_LIBPNG_VER_STRING,message);
- (void) ThrowMagickException(&image->exception,GetMagickModule(),CoderWarning,
+ (void) ThrowMagickException(exception,GetMagickModule(),CoderWarning,
message,"`%s'",image->filename);
}
@@ -1844,7 +1867,7 @@
/* allocate space */
if (length == 0)
{
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderWarning,"UnableToCopyProfile","`%s'","invalid profile length");
return(MagickFalse);
}
@@ -1853,7 +1876,7 @@
if (profile == (StringInfo *) NULL)
{
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
ResourceLimitError,"MemoryAllocationFailed","`%s'",
"unable to copy profile");
return(MagickFalse);
@@ -1869,7 +1892,7 @@
{
if (*sp == '\0')
{
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderWarning,"UnableToCopyProfile","`%s'","ran out of data");
profile=DestroyStringInfo(profile);
return(MagickFalse);
@@ -2000,13 +2023,16 @@
double
file_gamma;
- PixelInfo
- transparent_color;
-
MagickBooleanType
logging,
status;
+ PixelInfo
+ transparent_color;
+
+ PNGErrorInfo
+ error_info;
+
png_bytep
ping_trans_alpha;
@@ -2115,11 +2141,13 @@
Allocate the PNG structures
*/
#ifdef PNG_USER_MEM_SUPPORTED
- ping=png_create_read_struct_2(PNG_LIBPNG_VER_STRING, image,
+ error_info.image=image;
+ error_info.exception=exception;
+ ping=png_create_read_struct_2(PNG_LIBPNG_VER_STRING,&error_info,
MagickPNGErrorHandler,MagickPNGWarningHandler, NULL,
(png_malloc_ptr) Magick_png_malloc,(png_free_ptr) Magick_png_free);
#else
- ping=png_create_read_struct(PNG_LIBPNG_VER_STRING,image,
+ ping=png_create_read_struct(PNG_LIBPNG_VER_STRING,&error_info,
MagickPNGErrorHandler,MagickPNGWarningHandler);
#endif
if (ping == (png_struct *) NULL)
@@ -2158,7 +2186,7 @@
if (image != (Image *) NULL)
{
- InheritException(exception,&image->exception);
+ InheritException(exception,exception);
image->columns=0;
}
@@ -2299,7 +2327,7 @@
profile=BlobToStringInfo(info,profile_length);
if (profile == (StringInfo *) NULL)
{
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
ResourceLimitError,"MemoryAllocationFailed","`%s'",
"unable to copy profile");
return((Image *) NULL);
@@ -2455,7 +2483,7 @@
{
if (mng_info->global_trns_length >
mng_info->global_plte_length)
- (void) ThrowMagickException(&image->exception,
+ (void) ThrowMagickException(exception,
GetMagickModule(),CoderError,
"global tRNS has more entries than global PLTE",
"`%s'",image_info->filename);
@@ -2496,7 +2524,7 @@
#endif
}
else
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"No global PLTE in file","`%s'",
image_info->filename);
}
@@ -2846,7 +2874,7 @@
if (image != (Image *) NULL)
{
- InheritException(exception,&image->exception);
+ InheritException(exception,exception);
image->columns=0;
}
@@ -3362,7 +3390,7 @@
sizeof(*value));
if (value == (char *) NULL)
{
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
ResourceLimitError,"MemoryAllocationFailed","`%s'",
image->filename);
break;
@@ -3417,12 +3445,12 @@
mng_info->ob[object_id]->frozen)
{
if (mng_info->ob[object_id] == (MngBuffer *) NULL)
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
ResourceLimitError,"MemoryAllocationFailed","`%s'",
image->filename);
if (mng_info->ob[object_id]->frozen)
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
ResourceLimitError,"Cannot overwrite frozen MNG object buffer",
"`%s'",image->filename);
}
@@ -3435,13 +3463,13 @@
(mng_info->ob[object_id]->image);
mng_info->ob[object_id]->image=CloneImage(image,0,0,MagickTrue,
- &image->exception);
+ exception);
if (mng_info->ob[object_id]->image != (Image *) NULL)
mng_info->ob[object_id]->image->file=(FILE *) NULL;
else
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
ResourceLimitError,"Cloning image for object buffer failed",
"`%s'",image->filename);
@@ -4335,7 +4363,7 @@
for (y=0; y < (ssize_t) image->rows; y++)
{
- s=GetVirtualPixels(jng_image,0,y,image->columns,1,&image->exception);
+ s=GetVirtualPixels(jng_image,0,y,image->columns,1,exception);
q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
for (x=(ssize_t) image->columns; x != 0; x--)
{
@@ -4382,7 +4410,7 @@
for (y=0; y < (ssize_t) image->rows; y++)
{
s=GetVirtualPixels(jng_image,0,y,image->columns,1,
- &image->exception);
+ exception);
q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
if (image->matte != MagickFalse)
@@ -4804,7 +4832,7 @@
skip_to_iend=MagickTrue;
if (mng_info->jhdr_warning == 0)
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"JNGCompressNotSupported","`%s'",image->filename);
mng_info->jhdr_warning++;
@@ -4815,7 +4843,7 @@
skip_to_iend=MagickTrue;
if (mng_info->dhdr_warning == 0)
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"DeltaPNGNotSupported","`%s'",image->filename);
mng_info->dhdr_warning++;
@@ -4957,14 +4985,14 @@
if (memcmp(type,mng_DEFI,4) == 0)
{
if (mng_type == 3)
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"DEFI chunk found in MNG-VLC datastream","`%s'",
image->filename);
object_id=(p[0] << 8) | p[1];
if (mng_type == 2 && object_id != 0)
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"Nonzero object_id in MNG-LC datastream","`%s'",
image->filename);
@@ -4974,7 +5002,7 @@
Instead ofsuing a warning we should allocate a larger
MngInfo structure and continue.
*/
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"object id too large","`%s'",image->filename);
object_id=MNG_MAX_OBJECTS;
}
@@ -4983,7 +5011,7 @@
if (mng_info->frozen[object_id])
{
chunk=(unsigned char *) RelinquishMagickMemory(chunk);
- (void) ThrowMagickException(&image->exception,
+ (void) ThrowMagickException(exception,
GetMagickModule(),CoderError,
"DEFI cannot redefine a frozen MNG object","`%s'",
image->filename);
@@ -5215,7 +5243,7 @@
if (memcmp(type,mng_FRAM,4) == 0)
{
if (mng_type == 3)
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"FRAM chunk found in MNG-VLC datastream","`%s'",
image->filename);
@@ -5581,7 +5609,7 @@
if (memcmp(type,mng_CLON,4) == 0)
{
if (mng_info->clon_warning == 0)
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"CLON is not implemented yet","`%s'",
image->filename);
@@ -5617,7 +5645,7 @@
if (magn_first || magn_last)
if (mng_info->magn_warning == 0)
{
- (void) ThrowMagickException(&image->exception,
+ (void) ThrowMagickException(exception,
GetMagickModule(),CoderError,
"MAGN is not implemented yet for nonzero objects",
"`%s'",image->filename);
@@ -5695,7 +5723,7 @@
if (magn_methx > 5 || magn_methy > 5)
if (mng_info->magn_warning == 0)
{
- (void) ThrowMagickException(&image->exception,
+ (void) ThrowMagickException(exception,
GetMagickModule(),CoderError,
"Unknown MAGN method in MNG datastream","`%s'",
image->filename);
@@ -5722,7 +5750,7 @@
if (memcmp(type,mng_PAST,4) == 0)
{
if (mng_info->past_warning == 0)
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"PAST is not implemented yet","`%s'",
image->filename);
@@ -5732,7 +5760,7 @@
if (memcmp(type,mng_SHOW,4) == 0)
{
if (mng_info->show_warning == 0)
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"SHOW is not implemented yet","`%s'",
image->filename);
@@ -5772,7 +5800,7 @@
if (memcmp(type,mng_pHYg,4) == 0)
{
if (mng_info->phyg_warning == 0)
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"pHYg is not implemented.","`%s'",image->filename);
mng_info->phyg_warning++;
@@ -5782,7 +5810,7 @@
skip_to_iend=MagickTrue;
if (mng_info->basi_warning == 0)
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"BASI is not implemented yet","`%s'",
image->filename);
@@ -6721,12 +6749,10 @@
#endif
#if (MAGICKCORE_QUANTUM_DEPTH > 8)
- if (LosslessReduceDepthOK(image) != MagickFalse)
+ if (LosslessReduceDepthOK(image,exception) != MagickFalse)
image->depth = 8;
#endif
- GetImageException(image,exception);
-
if (image_info->number_scenes != 0)
{
if (mng_info->scenes_found >
@@ -6804,7 +6830,7 @@
if (logging != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule()," No beginning");
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"Linked list is corrupted, beginning of list not found",
"`%s'",image_info->filename);
@@ -6818,7 +6844,7 @@
if (logging != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule()," Corrupt list");
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"Linked list is corrupted; next_image is NULL","`%s'",
image_info->filename);
}
@@ -6832,7 +6858,7 @@
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" First image null");
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"image->next for first image is NULL but shouldn't be.",
"`%s'",image_info->filename);
}
@@ -6843,7 +6869,7 @@
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" No visible images found.");
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"No visible images in file","`%s'",image_info->filename);
if (image != (Image *) NULL)
@@ -6918,7 +6944,7 @@
(void) LogMagickEvent(CoderEvent,GetMagickModule()," Coalesce Images");
scene=image->scene;
- next_image=CoalesceImages(image,&image->exception);
+ next_image=CoalesceImages(image,exception);
if (next_image == (Image *) NULL)
ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed");
@@ -7517,6 +7543,9 @@
QuantumInfo
*quantum_info;
+ PNGErrorInfo
+ error_info;
+
register ssize_t
i,
x;
@@ -7557,7 +7586,7 @@
logging=LogMagickEvent(CoderEvent,GetMagickModule(),
" Enter WriteOnePNGImage()");
- image = CloneImage(IMimage,0,0,MagickFalse,&IMimage->exception);
+ image = CloneImage(IMimage,0,0,MagickFalse,exception);
image_info=(ImageInfo *) CloneImageInfo(IMimage_info);
if (image_info == (ImageInfo *) NULL)
ThrowWriterException(ResourceLimitError, "MemoryAllocationFailed");
@@ -7761,11 +7790,6 @@
register Quantum
*r;
- ExceptionInfo
- *exception;
-
- exception=(&image->exception);
-
if (image->depth > 8)
{
#if MAGICKCORE_QUANTUM_DEPTH > 16
@@ -7808,8 +7832,7 @@
for (y=0; y < (ssize_t) image->rows; y++)
{
- r=GetAuthenticPixels(image,0,y,image->columns,1,
- exception);
+ r=GetAuthenticPixels(image,0,y,image->columns,1,exception);
if (r == (Quantum *) NULL)
break;
@@ -7944,7 +7967,7 @@
#if (MAGICKCORE_QUANTUM_DEPTH > 8)
if (image->depth == 16 && mng_info->write_png_depth != 16)
- if (mng_info->write_png8 || LosslessReduceDepthOK(image) != MagickFalse)
+ if (mng_info->write_png8 || LosslessReduceDepthOK(image,exception) != MagickFalse)
image->depth = 8;
#endif
@@ -7985,9 +8008,6 @@
* we need to check for bogus non-opaque values, at least.
*/
- ExceptionInfo
- *exception;
-
int
n;
@@ -8063,8 +8083,6 @@
" Regenerate the colormap");
}
- exception=(&image->exception);
-
image_colors=0;
number_opaque = 0;
number_semitransparent = 0;
@@ -8782,14 +8800,9 @@
else if (image_colors == 0 || image_colors > 256 ||
image->colormap == NULL)
{
- ExceptionInfo
- *exception;
-
register const Quantum
*q;
- exception=(&image->exception);
-
for (y=0; y < (ssize_t) image->rows; y++)
{
q=GetVirtualPixels(image,0,y,image->columns,1, exception);
@@ -8863,8 +8876,7 @@
{
image_info=DestroyImageInfo(image_info);
image=DestroyImage(image);
- (void) ThrowMagickException(&IMimage->exception,
- GetMagickModule(),CoderError,
+ (void) ThrowMagickException(exception,GetMagickModule(),CoderError,
"Cannot write PNG8 or color-type 3; colormap is NULL",
"`%s'",IMimage->filename);
#if defined(PNG_SETJMP_NOT_THREAD_SAFE)
@@ -8877,12 +8889,14 @@
Allocate the PNG structures
*/
#ifdef PNG_USER_MEM_SUPPORTED
- ping=png_create_write_struct_2(PNG_LIBPNG_VER_STRING,image,
+ error_info.image=image;
+ error_info.exception=exception;
+ ping=png_create_write_struct_2(PNG_LIBPNG_VER_STRING,&error_info,
MagickPNGErrorHandler,MagickPNGWarningHandler,(void *) NULL,
(png_malloc_ptr) Magick_png_malloc,(png_free_ptr) Magick_png_free);
#else
- ping=png_create_write_struct(PNG_LIBPNG_VER_STRING,image,
+ ping=png_create_write_struct(PNG_LIBPNG_VER_STRING,&error_info,
MagickPNGErrorHandler,MagickPNGWarningHandler);
#endif
@@ -9273,7 +9287,7 @@
if (image->colors == 0)
{
/* DO SOMETHING */
- (void) ThrowMagickException(&image->exception,
+ (void) ThrowMagickException(exception,
GetMagickModule(),CoderError,
"image has 0 colors", "`%s'","");
}
@@ -10189,7 +10203,7 @@
if (mng_info->need_blob != MagickFalse)
{
- if (OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception) ==
+ if (OpenBlob(image_info,image,WriteBinaryBlobMode,exception) ==
MagickFalse)
png_error(ping,"WriteBlob Failed");
@@ -10359,7 +10373,7 @@
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" Writing row of pixels (0)");
- p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ p=GetVirtualPixels(image,0,y,image->columns,1,exception);
if (p == (const Quantum *) NULL)
break;
@@ -10367,7 +10381,7 @@
if (mng_info->IsPalette)
{
(void) ExportQuantumPixels(image,(CacheView *) NULL,
- quantum_info,GrayQuantum,ping_pixels,&image->exception);
+ quantum_info,GrayQuantum,ping_pixels,exception);
if (mng_info->write_png_colortype-1 == PNG_COLOR_TYPE_PALETTE &&
mng_info->write_png_depth &&
mng_info->write_png_depth != old_bit_depth)
@@ -10382,7 +10396,7 @@
else
{
(void) ExportQuantumPixels(image,(CacheView *) NULL,
- quantum_info,RedQuantum,ping_pixels,&image->exception);
+ quantum_info,RedQuantum,ping_pixels,exception);
}
if (mng_info->write_png_colortype-1 != PNG_COLOR_TYPE_PALETTE)
@@ -10421,7 +10435,7 @@
for (y=0; y < (ssize_t) image->rows; y++)
{
- p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ p=GetVirtualPixels(image,0,y,image->columns,1,exception);
if (p == (const Quantum *) NULL)
break;
@@ -10430,11 +10444,11 @@
{
if (mng_info->IsPalette)
(void) ExportQuantumPixels(image,(CacheView *) NULL,
- quantum_info,GrayQuantum,ping_pixels,&image->exception);
+ quantum_info,GrayQuantum,ping_pixels,exception);
else
(void) ExportQuantumPixels(image,(CacheView *) NULL,
- quantum_info,RedQuantum,ping_pixels,&image->exception);
+ quantum_info,RedQuantum,ping_pixels,exception);
if (logging != MagickFalse && y == 0)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
@@ -10448,7 +10462,7 @@
" Writing GRAY_ALPHA PNG pixels (2)");
(void) ExportQuantumPixels(image,(CacheView *) NULL,
- quantum_info,GrayAlphaQuantum,ping_pixels,&image->exception);
+ quantum_info,GrayAlphaQuantum,ping_pixels,exception);
}
if (logging != MagickFalse && y == 0)
@@ -10481,7 +10495,7 @@
for (y=0; y < (ssize_t) image->rows; y++)
{
p=GetVirtualPixels(image,0,y,image->columns,1,
- &image->exception);
+ exception);
if (p == (const Quantum *) NULL)
break;
@@ -10490,18 +10504,18 @@
{
if (image->storage_class == DirectClass)
(void) ExportQuantumPixels(image,(CacheView *) NULL,
- quantum_info,RedQuantum,ping_pixels,&image->exception);
+ quantum_info,RedQuantum,ping_pixels,exception);
else
(void) ExportQuantumPixels(image,(CacheView *) NULL,
- quantum_info,GrayQuantum,ping_pixels,&image->exception);
+ quantum_info,GrayQuantum,ping_pixels,exception);
}
else if (ping_color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
{
(void) ExportQuantumPixels(image,(CacheView *) NULL,
quantum_info,GrayAlphaQuantum,ping_pixels,
- &image->exception);
+ exception);
if (logging != MagickFalse && y == 0)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
@@ -10510,11 +10524,11 @@
else if (image_matte != MagickFalse)
(void) ExportQuantumPixels(image,(CacheView *) NULL,
- quantum_info,RGBAQuantum,ping_pixels,&image->exception);
+ quantum_info,RGBAQuantum,ping_pixels,exception);
else
(void) ExportQuantumPixels(image,(CacheView *) NULL,
- quantum_info,RGBQuantum,ping_pixels,&image->exception);
+ quantum_info,RGBQuantum,ping_pixels,exception);
if (logging != MagickFalse && y == 0)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
@@ -10547,7 +10561,7 @@
" pass %d, Image Is RGB, 16-bit GRAY, or GRAY_ALPHA",pass);
p=GetVirtualPixels(image,0,y,image->columns,1,
- &image->exception);
+ exception);
if (p == (const Quantum *) NULL)
break;
@@ -10557,7 +10571,7 @@
quantum_info->depth=image->depth;
(void) ExportQuantumPixels(image,(CacheView *) NULL,
- quantum_info,GrayQuantum,ping_pixels,&image->exception);
+ quantum_info,GrayQuantum,ping_pixels,exception);
}
else if (ping_color_type == PNG_COLOR_TYPE_GRAY_ALPHA)
@@ -10568,13 +10582,13 @@
(void) ExportQuantumPixels(image,(CacheView *) NULL,
quantum_info,GrayAlphaQuantum,ping_pixels,
- &image->exception);
+ exception);
}
else
{
(void) ExportQuantumPixels(image,(CacheView *) NULL,
- quantum_info,IndexQuantum,ping_pixels,&image->exception);
+ quantum_info,IndexQuantum,ping_pixels,exception);
if (logging != MagickFalse && y <= 2)
{
@@ -10748,7 +10762,7 @@
}
if (mng_info->write_mng && !mng_info->need_fram &&
((int) image->dispose == 3))
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CoderError,"Cannot convert GIF with disposal method 3 to MNG-LC",
"`%s'",image->filename);
@@ -11038,7 +11052,7 @@
mng_info->write_png_depth = 16;
else
- (void) ThrowMagickException(&image->exception,
+ (void) ThrowMagickException(exception,
GetMagickModule(),CoderWarning,
"ignoring invalid defined png:bit-depth",
"=%s",value);
@@ -11069,7 +11083,7 @@
mng_info->write_png_colortype = 7;
else
- (void) ThrowMagickException(&image->exception,
+ (void) ThrowMagickException(exception,
GetMagickModule(),CoderWarning,
"ignoring invalid defined png:color-type",
"=%s",value);
@@ -11181,7 +11195,7 @@
mng_info->write_png_compression_level = 10;
else
- (void) ThrowMagickException(&image->exception,
+ (void) ThrowMagickException(exception,
GetMagickModule(),CoderWarning,
"ignoring invalid defined png:compression-level",
"=%s",value);
@@ -11217,7 +11231,7 @@
#endif
else
- (void) ThrowMagickException(&image->exception,
+ (void) ThrowMagickException(exception,
GetMagickModule(),CoderWarning,
"ignoring invalid defined png:compression-strategy",
"=%s",value);
@@ -11255,7 +11269,7 @@
mng_info->write_png_compression_filter = 6;
else
- (void) ThrowMagickException(&image->exception,
+ (void) ThrowMagickException(exception,
GetMagickModule(),CoderWarning,
"ignoring invalid defined png:compression-filter",
"=%s",value);
@@ -11669,7 +11683,7 @@
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" Creating jpeg_image.");
- jpeg_image=CloneImage(image,0,0,MagickTrue,&image->exception);
+ jpeg_image=CloneImage(image,0,0,MagickTrue,exception);
if (jpeg_image == (Image *) NULL)
ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
@@ -11697,7 +11711,7 @@
/* Check if image is grayscale. */
if (image_info->type != TrueColorMatteType && image_info->type !=
- TrueColorType && ImageIsGray(image))
+ TrueColorType && ImageIsGray(image,exception))
jng_color_type-=2;
if (transparent)
@@ -11709,7 +11723,7 @@
/* Encode alpha as a grayscale PNG blob */
status=OpenBlob(jpeg_image_info,jpeg_image,WriteBinaryBlobMode,
- &image->exception);
+ exception);
if (logging != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" Creating PNG blob.");
@@ -11720,7 +11734,7 @@
jpeg_image_info->interlace=NoInterlace;
blob=ImageToBlob(jpeg_image_info,jpeg_image,&length,
- &image->exception);
+ exception);
/* Retrieve sample depth used */
value=GetImageProperty(jpeg_image,"png:bit-depth-written",exception);
@@ -11732,7 +11746,7 @@
/* Encode alpha as a grayscale JPEG blob */
status=OpenBlob(jpeg_image_info,jpeg_image,WriteBinaryBlobMode,
- &image->exception);
+ exception);
(void) CopyMagickString(jpeg_image_info->magick,"JPEG",MaxTextExtent);
(void) CopyMagickString(jpeg_image->magick,"JPEG",MaxTextExtent);
@@ -11741,7 +11755,7 @@
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" Creating blob.");
blob=ImageToBlob(jpeg_image_info,jpeg_image,&length,
- &image->exception);
+ exception);
jng_alpha_sample_depth=8;
if (logging != MagickFalse)
@@ -12056,7 +12070,7 @@
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" Creating jpeg_image.");
- jpeg_image=CloneImage(image,0,0,MagickTrue,&image->exception);
+ jpeg_image=CloneImage(image,0,0,MagickTrue,exception);
if (jpeg_image == (Image *) NULL)
ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
(void) CopyMagickString(jpeg_image->magick,"JPEG",MaxTextExtent);
@@ -12066,7 +12080,7 @@
jpeg_image->filename);
status=OpenBlob(jpeg_image_info,jpeg_image,WriteBinaryBlobMode,
- &image->exception);
+ exception);
if (logging != MagickFalse)
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
@@ -12084,7 +12098,7 @@
(void) LogMagickEvent(CoderEvent,GetMagickModule(),
" Creating blob.");
- blob=ImageToBlob(jpeg_image_info,jpeg_image,&length,&image->exception);
+ blob=ImageToBlob(jpeg_image_info,jpeg_image,&length,exception);
if (logging != MagickFalse)
{
@@ -12177,7 +12191,7 @@
assert(image->signature == MagickSignature);
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
logging=LogMagickEvent(CoderEvent,GetMagickModule(),"Enter WriteJNGImage()");
- status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
+ status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
if (status == MagickFalse)
return(status);
@@ -12273,7 +12287,7 @@
assert(image->signature == MagickSignature);
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
logging=LogMagickEvent(CoderEvent,GetMagickModule(),"Enter WriteMNGImage()");
- status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
+ status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
if (status == MagickFalse)
return(status);
@@ -12460,7 +12474,7 @@
if (need_local_plte == 0)
{
- if (ImageIsGray(image) == MagickFalse)
+ if (ImageIsGray(image,exception) == MagickFalse)
all_images_are_gray=MagickFalse;
mng_info->equal_palettes=PalettesAreEqual(image,next_image);
if (use_global_plte == 0)
@@ -12544,8 +12558,8 @@
if (mng_info->adjoin)
{
final_delay=10;
- (void) ThrowMagickException(&image->exception,
- GetMagickModule(),CoderWarning,
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ CoderWarning,
"input has zero delay between all frames; assuming",
" 10 cs `%s'","");
}
diff --git a/coders/pnm.c b/coders/pnm.c
index ba155cc..5b71554 100644
--- a/coders/pnm.c
+++ b/coders/pnm.c
@@ -137,12 +137,12 @@
*/
static inline ssize_t ConstrainPixel(Image *image,const ssize_t offset,
- const size_t extent)
+ const size_t extent,ExceptionInfo *exception)
{
if ((offset < 0) || (offset > (ssize_t) extent))
{
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
- CorruptImageError,"InvalidPixel","`%s'",image->filename);
+ (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
+ "InvalidPixel","`%s'",image->filename);
return(0);
}
return(offset);
@@ -500,7 +500,7 @@
SetPixelRed(image,intensity,q);
if (scale != (Quantum *) NULL)
SetPixelRed(image,scale[ConstrainPixel(image,(ssize_t) intensity,
- max_value)],q);
+ max_value,exception)],q);
SetPixelGreen(image,GetPixelRed(image,q),q);
SetPixelBlue(image,GetPixelRed(image,q),q);
q+=GetPixelChannels(image);
@@ -560,11 +560,11 @@
if (scale != (Quantum *) NULL)
{
pixel.red=(MagickRealType) scale[ConstrainPixel(image,(ssize_t)
- pixel.red,max_value)];
+ pixel.red,max_value,exception)];
pixel.green=(MagickRealType) scale[ConstrainPixel(image,
- (ssize_t) pixel.green,max_value)];
+ (ssize_t) pixel.green,max_value,exception)];
pixel.blue=(MagickRealType) scale[ConstrainPixel(image,(ssize_t)
- pixel.blue,max_value)];
+ pixel.blue,max_value,exception)];
}
SetPixelRed(image,ClampToQuantum(pixel.red),q);
SetPixelGreen(image,ClampToQuantum(pixel.green),q);
diff --git a/coders/ps.c b/coders/ps.c
index dc8d219..8267d4f 100644
--- a/coders/ps.c
+++ b/coders/ps.c
@@ -682,7 +682,7 @@
file=AcquireUniqueFileResource(postscript_filename);
if (file == -1)
{
- ThrowFileException(&image->exception,FileOpenError,"UnableToOpenFile",
+ ThrowFileException(exception,FileOpenError,"UnableToOpenFile",
image_info->filename);
image=DestroyImageList(image);
return((Image *) NULL);
diff --git a/coders/ps3.c b/coders/ps3.c
index 1514682..8df9d62 100644
--- a/coders/ps3.c
+++ b/coders/ps3.c
@@ -266,7 +266,7 @@
q=(*pixels);
for (y=0; y < (ssize_t) image->rows; y++)
{
- p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ p=GetVirtualPixels(image,0,y,image->columns,1,exception);
if (p == (const Quantum *) NULL)
break;
if (image->colorspace != CMYKColorspace)
@@ -330,7 +330,7 @@
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
status=MagickTrue;
- pack=IsImageMonochrome(image,&image->exception) == MagickFalse ? 1UL : 8UL;
+ pack=IsImageMonochrome(image,exception) == MagickFalse ? 1UL : 8UL;
padded_columns=((image->columns+pack-1)/pack)*pack;
*length=(size_t) padded_columns*image->rows/pack;
*pixels=(unsigned char *) AcquireQuantumMemory(*length,sizeof(**pixels));
@@ -518,9 +518,9 @@
}
(void) WriteBlobString(image,buffer);
(void) WriteBlobString(image,"/ReusableStreamDecode filter\n");
- mask_image=CloneImage(image,0,0,MagickTrue,&image->exception);
+ mask_image=CloneImage(image,0,0,MagickTrue,exception);
if (mask_image == (Image *) NULL)
- ThrowWriterException(CoderError,image->exception.reason);
+ ThrowWriterException(CoderError,exception->reason);
channel_mask=SetPixelChannelMask(mask_image,AlphaChannel);
status=SeparateImage(mask_image,exception);
(void) SetPixelChannelMap(mask_image,channel_mask);
diff --git a/coders/psd.c b/coders/psd.c
index f6d0c6b..c1fa4b8 100644
--- a/coders/psd.c
+++ b/coders/psd.c
@@ -826,7 +826,6 @@
image->rows=psd_info.rows;
if (SetImageBackgroundColor(image,exception) == MagickFalse)
{
- InheritException(exception,&image->exception);
image=DestroyImageList(image);
return((Image *) NULL);
}
@@ -1191,7 +1190,7 @@
*/
layer_info[i].image=CloneImage(image,layer_info[i].page.width,
layer_info[i].page.height == ~0U ? 1 : layer_info[i].page.height,
- MagickFalse,&image->exception);
+ MagickFalse,exception);
if (layer_info[i].image == (Image *) NULL)
{
for (j=0; j < i; j++)
@@ -1693,11 +1692,11 @@
pixels=GetQuantumPixels(quantum_info);
for (y=0; y < (ssize_t) next_image->rows; y++)
{
- p=GetVirtualPixels(next_image,0,y,next_image->columns,1,&image->exception);
+ p=GetVirtualPixels(next_image,0,y,next_image->columns,1,exception);
if (p == (const Quantum *) NULL)
break;
length=ExportQuantumPixels(next_image,(CacheView *) NULL,quantum_info,
- quantum_type,pixels,&image->exception);
+ quantum_type,pixels,exception);
length=PSDPackbitsEncodeImage(image,length,pixels,compact_pixels,
exception);
(void) SetPSDOffset(psd_info,image,length);
@@ -1738,19 +1737,19 @@
(void) WriteBlobMSBShort(image,0);
if (next_image->depth > 8)
next_image->depth=16;
- monochrome=IsImageMonochrome(image,&image->exception) && (image->depth == 1)
- ? MagickTrue : MagickFalse;
+ monochrome=IsImageMonochrome(image,exception) && (image->depth == 1) ?
+ MagickTrue : MagickFalse;
packet_size=next_image->depth > 8UL ? 2UL : 1UL;
(void) packet_size;
quantum_info=AcquireQuantumInfo(image_info,image);
pixels=GetQuantumPixels(quantum_info);
for (y=0; y < (ssize_t) next_image->rows; y++)
{
- p=GetVirtualPixels(next_image,0,y,next_image->columns,1,&image->exception);
+ p=GetVirtualPixels(next_image,0,y,next_image->columns,1,exception);
if (p == (const Quantum *) NULL)
break;
length=ExportQuantumPixels(next_image,(CacheView *) NULL,quantum_info,
- quantum_type,pixels,&image->exception);
+ quantum_type,pixels,exception);
if (monochrome != MagickFalse)
for (i=0; i < (ssize_t) length; i++)
pixels[i]=(~pixels[i]);
@@ -1794,7 +1793,7 @@
ThrowWriterException(ResourceLimitError,"MemoryAllocationFailed");
}
i=0;
- if (IsImageGray(next_image,&next_image->exception) != MagickFalse)
+ if (IsImageGray(next_image,exception) != MagickFalse)
{
if (next_image->compression == RLECompression)
{
@@ -1844,7 +1843,7 @@
else
{
if (next_image->colorspace == CMYKColorspace)
- (void) NegateImage(next_image,MagickFalse,&next_image->exception);
+ (void) NegateImage(next_image,MagickFalse,exception);
if (next_image->compression == RLECompression)
{
/*
@@ -1888,7 +1887,7 @@
MagickFalse,exception);
(void) SetImageProgress(image,SaveImagesTag,5,6);
if (next_image->colorspace == CMYKColorspace)
- (void) NegateImage(next_image,MagickFalse,&next_image->exception);
+ (void) NegateImage(next_image,MagickFalse,exception);
}
if (next_image->compression == RLECompression)
compact_pixels=(unsigned char *) RelinquishMagickMemory(compact_pixels);
diff --git a/coders/raw.c b/coders/raw.c
index 1ab9087..d81f9de 100644
--- a/coders/raw.c
+++ b/coders/raw.c
@@ -267,7 +267,6 @@
scene++;
} while (count == (ssize_t) length);
quantum_info=DestroyQuantumInfo(quantum_info);
- InheritException(&image->exception,&canvas_image->exception);
canvas_image=DestroyImage(canvas_image);
(void) CloseBlob(image);
return(GetFirstImageInList(image));
diff --git a/coders/rgb.c b/coders/rgb.c
index e97a747..2259c38 100644
--- a/coders/rgb.c
+++ b/coders/rgb.c
@@ -951,7 +951,6 @@
scene++;
} while (count == (ssize_t) length);
quantum_info=DestroyQuantumInfo(quantum_info);
- InheritException(&image->exception,&canvas_image->exception);
canvas_image=DestroyImage(canvas_image);
(void) CloseBlob(image);
return(GetFirstImageInList(image));
diff --git a/coders/sfw.c b/coders/sfw.c
index 4c2c516..262ccd0 100644
--- a/coders/sfw.c
+++ b/coders/sfw.c
@@ -329,8 +329,8 @@
(void) remove_utf8(read_info->filename);
read_info=DestroyImageInfo(read_info);
message=GetExceptionMessage(errno);
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
- FileOpenError,"UnableToWriteFile","`%s': %s",image->filename,message);
+ (void) ThrowMagickException(exception,GetMagickModule(),FileOpenError,
+ "UnableToWriteFile","`%s': %s",image->filename,message);
message=DestroyString(message);
image=DestroyImageList(image);
return((Image *) NULL);
diff --git a/coders/svg.c b/coders/svg.c
index b860c85..ddaaca4 100644
--- a/coders/svg.c
+++ b/coders/svg.c
@@ -3300,7 +3300,7 @@
return(p != point ? MagickTrue : MagickFalse);
}
-static MagickBooleanType TraceSVGImage(Image *image)
+static MagickBooleanType TraceSVGImage(Image *image,ExceptionInfo *exception)
{
ssize_t
y;
@@ -3395,14 +3395,13 @@
GetPixelInfo(image,&pixel);
for (y=0; y < (ssize_t) image->rows; y++)
{
- p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ p=GetVirtualPixels(image,0,y,image->columns,1,exception);
if (p == (const Quantum *) NULL)
break;
for (x=0; x < (ssize_t) image->columns; x++)
{
SetPixelInfo(image,p,&pixel);
- (void) QueryColorname(image,&pixel,SVGCompliance,tuple,
- &image->exception);
+ (void) QueryColorname(image,&pixel,SVGCompliance,tuple,exception);
(void) FormatLocaleString(message,MaxTextExtent,
" <circle cx=\"%.20g\" cy=\"%.20g\" r=\"1\" fill=\"%s\"/>\n",
(double) x,(double) y,tuple);
@@ -3493,7 +3492,7 @@
}
value=GetImageArtifact(image,"MVG");
if (value == (char *) NULL)
- return(TraceSVGImage(image));
+ return(TraceSVGImage(image,exception));
/*
Write SVG header.
*/
diff --git a/coders/tga.c b/coders/tga.c
index 850b75e..a01dd89 100644
--- a/coders/tga.c
+++ b/coders/tga.c
@@ -390,7 +390,7 @@
index=(Quantum) ReadBlobByte(image);
if (tga_info.colormap_type != 0)
pixel=image->colormap[(ssize_t) ConstrainColormapIndex(image,
- 1UL*index)];
+ 1UL*index,exception)];
else
{
pixel.red=ScaleCharToQuantum((unsigned char) index);
@@ -419,7 +419,7 @@
pixel.alpha=(k & 0x80) == 0 ? (Quantum) OpaqueAlpha :
(Quantum) TransparentAlpha;
if (image->storage_class == PseudoClass)
- index=ConstrainColormapIndex(image,((size_t) k << 8)+j);
+ index=ConstrainColormapIndex(image,((size_t) k << 8)+j,exception);
break;
}
case 24:
diff --git a/coders/tiff.c b/coders/tiff.c
index 23637f5..19348e4 100644
--- a/coders/tiff.c
+++ b/coders/tiff.c
@@ -1494,7 +1494,7 @@
TIFFClose(tiff);
ThrowReaderException(CoderError,"ImageIsNotTiled");
}
- (void) SetImageStorageClass(image,DirectClass,&image->exception);
+ (void) SetImageStorageClass(image,DirectClass,exception);
number_pixels=columns*rows;
tile_pixels=(uint32 *) AcquireQuantumMemory(number_pixels,
sizeof(*tile_pixels));
diff --git a/coders/webp.c b/coders/webp.c
index 6c32ed2..c5c51cf 100644
--- a/coders/webp.c
+++ b/coders/webp.c
@@ -335,7 +335,7 @@
assert(image->signature == MagickSignature);
if (image->debug != MagickFalse)
(void) LogMagickEvent(TraceEvent,GetMagickModule(),"%s",image->filename);
- status=OpenBlob(image_info,image,WriteBinaryBlobMode,&image->exception);
+ status=OpenBlob(image_info,image,WriteBinaryBlobMode,exception);
if (status == MagickFalse)
return(status);
if (WebPPictureInit(&picture) == 0)
@@ -367,7 +367,7 @@
q=pixels;
for (y=0; y < (ssize_t) image->rows; y++)
{
- p=GetVirtualPixels(image,0,y,image->columns,1,&image->exception);
+ p=GetVirtualPixels(image,0,y,image->columns,1,exception);
if (p == (const Quantum *) NULL)
break;
for (x=0; x < (ssize_t) image->columns; x++)
diff --git a/coders/wpg.c b/coders/wpg.c
index 3c2719b..257c5e8 100644
--- a/coders/wpg.c
+++ b/coders/wpg.c
@@ -264,11 +264,9 @@
return;
}
-static void InsertRow(unsigned char *p,ssize_t y,Image *image, int bpp)
+static void InsertRow(Image *image,unsigned char *p,ssize_t y,int bpp,
+ ExceptionInfo *exception)
{
- ExceptionInfo
- *exception;
-
int
bit;
@@ -281,7 +279,6 @@
ssize_t
x;
- exception=(&image->exception);
switch (bpp)
{
case 1: /* Convert bitmap scanline. */
@@ -322,19 +319,19 @@
break;
for (x=0; x < ((ssize_t) image->columns-1); x+=2)
{
- index=ConstrainColormapIndex(image,(*p >> 6) & 0x3);
+ index=ConstrainColormapIndex(image,(*p >> 6) & 0x3,exception);
SetPixelIndex(image,index,q);
SetPixelPixelInfo(image,image->colormap+(ssize_t) index,q);
q+=GetPixelChannels(image);
- index=ConstrainColormapIndex(image,(*p >> 4) & 0x3);
+ index=ConstrainColormapIndex(image,(*p >> 4) & 0x3,exception);
SetPixelIndex(image,index,q);
SetPixelPixelInfo(image,image->colormap+(ssize_t) index,q);
q+=GetPixelChannels(image);
- index=ConstrainColormapIndex(image,(*p >> 2) & 0x3);
+ index=ConstrainColormapIndex(image,(*p >> 2) & 0x3,exception);
SetPixelIndex(image,index,q);
SetPixelPixelInfo(image,image->colormap+(ssize_t) index,q);
q+=GetPixelChannels(image);
- index=ConstrainColormapIndex(image,(*p) & 0x3);
+ index=ConstrainColormapIndex(image,(*p) & 0x3,exception);
SetPixelIndex(image,index,q);
SetPixelPixelInfo(image,image->colormap+(ssize_t) index,q);
p++;
@@ -342,21 +339,22 @@
}
if ((image->columns % 4) != 0)
{
- index=ConstrainColormapIndex(image,(*p >> 6) & 0x3);
+ index=ConstrainColormapIndex(image,(*p >> 6) & 0x3,exception);
SetPixelIndex(image,index,q);
SetPixelPixelInfo(image,image->colormap+(ssize_t) index,q);
q+=GetPixelChannels(image);
if ((image->columns % 4) >= 1)
{
- index=ConstrainColormapIndex(image,(*p >> 4) & 0x3);
+ index=ConstrainColormapIndex(image,(*p >> 4) & 0x3,exception);
SetPixelIndex(image,index,q);
SetPixelPixelInfo(image,image->colormap+(ssize_t) index,q);
q+=GetPixelChannels(image);
if ((image->columns % 4) >= 2)
{
- index=ConstrainColormapIndex(image,(*p >> 2) & 0x3);
+ index=ConstrainColormapIndex(image,(*p >> 2) & 0x3,
+ exception);
SetPixelIndex(image,index,q);
SetPixelPixelInfo(image,image->colormap+(ssize_t) index,q);
q+=GetPixelChannels(image);
@@ -376,11 +374,11 @@
break;
for (x=0; x < ((ssize_t) image->columns-1); x+=2)
{
- index=ConstrainColormapIndex(image,(*p >> 4) & 0x0f);
+ index=ConstrainColormapIndex(image,(*p >> 4) & 0x0f,exception);
SetPixelIndex(image,index,q);
SetPixelPixelInfo(image,image->colormap+(ssize_t) index,q);
q+=GetPixelChannels(image);
- index=ConstrainColormapIndex(image,(*p) & 0x0f);
+ index=ConstrainColormapIndex(image,(*p) & 0x0f,exception);
SetPixelIndex(image,index,q);
SetPixelPixelInfo(image,image->colormap+(ssize_t) index,q);
p++;
@@ -388,7 +386,7 @@
}
if ((image->columns % 2) != 0)
{
- index=ConstrainColormapIndex(image,(*p >> 4) & 0x0f);
+ index=ConstrainColormapIndex(image,(*p >> 4) & 0x0f,exception);
SetPixelIndex(image,index,q);
SetPixelPixelInfo(image,image->colormap+(ssize_t) index,q);
p++;
@@ -405,7 +403,7 @@
for (x=0; x < (ssize_t) image->columns; x++)
{
- index=ConstrainColormapIndex(image,*p);
+ index=ConstrainColormapIndex(image,*p,exception);
SetPixelIndex(image,index,q);
SetPixelPixelInfo(image,image->colormap+(ssize_t) index,q);
p++;
@@ -441,13 +439,13 @@
x++; \
if((ssize_t) x>=ldblk) \
{ \
- InsertRow(BImgBuff,(ssize_t) y,image,bpp); \
+ InsertRow(image,BImgBuff,(ssize_t) y,bpp,exception); \
x=0; \
y++; \
} \
}
/* WPG1 raster reader. */
-static int UnpackWPGRaster(Image *image,int bpp)
+static int UnpackWPGRaster(Image *image,int bpp,ExceptionInfo *exception)
{
int
x,
@@ -513,7 +511,7 @@
BImgBuff=(unsigned char *) RelinquishMagickMemory(BImgBuff);
return(-4);
}
- InsertRow(BImgBuff,y-1,image,bpp);
+ InsertRow(image,BImgBuff,y-1,bpp,exception);
}
}
}
@@ -533,13 +531,13 @@
x++; \
if((ssize_t) x >= ldblk) \
{ \
- InsertRow(BImgBuff,(ssize_t) y,image,bpp); \
+ InsertRow(image,BImgBuff,(ssize_t) y,bpp,exception); \
x=0; \
y++; \
} \
}
/* WPG2 raster reader. */
-static int UnpackWPG2Raster(Image *image,int bpp)
+static int UnpackWPG2Raster(Image *image,int bpp,ExceptionInfo *exception)
{
size_t
x,
@@ -614,8 +612,8 @@
/* duplicate the previous row RunCount x */
for(i=0;i<=RunCount;i++)
{
- InsertRow(BImgBuff,(ssize_t) (image->rows >= y ? y : image->rows-1),
- image,bpp);
+ InsertRow(image,BImgBuff,(ssize_t) (image->rows >= y ? y : image->rows-1),
+ bpp,exception);
y++;
}
}
@@ -1128,7 +1126,7 @@
}
}
- if(UnpackWPGRaster(image,bpp) < 0)
+ if(UnpackWPGRaster(image,bpp,exception) < 0)
/* The raster cannot be unpacked */
{
DecompressionFailed:
@@ -1300,7 +1298,7 @@
for(i=0; i< (ssize_t) image->rows; i++)
{
(void) ReadBlob(image,ldblk,BImgBuff);
- InsertRow(BImgBuff,i,image,bpp);
+ InsertRow(image,BImgBuff,i,bpp,exception);
}
if(BImgBuff)
@@ -1309,7 +1307,7 @@
}
case 1: /*RLE for WPG2 */
{
- if( UnpackWPG2Raster(image,bpp) < 0)
+ if( UnpackWPG2Raster(image,bpp,exception) < 0)
goto DecompressionFailed;
break;
}
diff --git a/coders/xcf.c b/coders/xcf.c
index 53d86b7..2109f86 100644
--- a/coders/xcf.c
+++ b/coders/xcf.c
@@ -295,7 +295,8 @@
return(y);
}
-static char *ReadBlobStringWithLongSize(Image *image,char *string,size_t max)
+static char *ReadBlobStringWithLongSize(Image *image,char *string,size_t max,
+ ExceptionInfo *exception)
{
int
c;
@@ -325,7 +326,7 @@
string[i]='\0';
offset=SeekBlob(image,(MagickOffsetType) (length-i),SEEK_CUR);
if (offset < 0)
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CorruptImageError,"ImproperImageHeader","`%s'",image->filename);
return(string);
}
@@ -436,7 +437,7 @@
xcfodata=xcfdata;
count=ReadBlob(image, (size_t) data_length, xcfdata);
xcfdatalimit = xcfodata+count-1;
- exception=(&image->exception);
+ exception=(exception);
for (i=0; i < (ssize_t) bytes_per_pixel; i++)
{
q=GetAuthenticPixels(tile_image,0,0,tile_image->columns,tile_image->rows,
@@ -779,10 +780,10 @@
outLayer->height = ReadBlobMSBLong(image);
outLayer->type = ReadBlobMSBLong(image);
(void) ReadBlobStringWithLongSize(image, outLayer->name,
- sizeof(outLayer->name));
+ sizeof(outLayer->name),exception);
/* allocate the image for this layer */
outLayer->image=CloneImage(image,outLayer->width, outLayer->height,MagickTrue,
- &image->exception);
+ exception);
if (outLayer->image == (Image *) NULL)
return MagickFalse;
/* read the layer properties! */
@@ -835,7 +836,7 @@
case PROP_PARASITES:
{
if (DiscardBlobBytes(image,prop_size) == MagickFalse)
- ThrowFileException(&image->exception,CorruptImageError,
+ ThrowFileException(exception,CorruptImageError,
"UnexpectedEndOfFile",image->filename);
/*
@@ -897,7 +898,7 @@
/* read in the hierarchy */
offset=SeekBlob(image, (MagickOffsetType) hierarchy_offset, SEEK_SET);
if (offset < 0)
- (void) ThrowMagickException(&image->exception,GetMagickModule(),
+ (void) ThrowMagickException(exception,GetMagickModule(),
CorruptImageError,"InvalidImageHeader","`%s'",image->filename);
if (load_hierarchy (image, inDocInfo, outLayer) == 0)
return(MagickFalse);
@@ -1062,7 +1063,7 @@
*/
size_t num_colours = ReadBlobMSBLong(image);
if (DiscardBlobBytes(image,3*num_colours) == MagickFalse)
- ThrowFileException(&image->exception,CorruptImageError,
+ ThrowFileException(exception,CorruptImageError,
"UnexpectedEndOfFile",image->filename);
/*
if (info->file_version == 0)
@@ -1110,7 +1111,7 @@
{
/* just skip it - we don't care about guides */
if (DiscardBlobBytes(image,prop_size) == MagickFalse)
- ThrowFileException(&image->exception,CorruptImageError,
+ ThrowFileException(exception,CorruptImageError,
"UnexpectedEndOfFile",image->filename);
}
break;
@@ -1150,7 +1151,7 @@
{
/* BOGUS: we may need these for IPTC stuff */
if (DiscardBlobBytes(image,prop_size) == MagickFalse)
- ThrowFileException(&image->exception,CorruptImageError,
+ ThrowFileException(exception,CorruptImageError,
"UnexpectedEndOfFile",image->filename);
/*
gssize_t base = info->cp;
@@ -1179,8 +1180,8 @@
{
/* BOGUS: just skip it for now */
if (DiscardBlobBytes(image,prop_size) == MagickFalse)
- ThrowFileException(&image->exception,CorruptImageError,
- "UnexpectedEndOfFile",image->filename);
+ ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile",
+ image->filename);
/*
PathList *paths = xcf_load_bzpaths (gimage, info);
@@ -1197,7 +1198,7 @@
/* size_t digits = */ (void) ReadBlobMSBLong(image);
for (i=0; i<5; i++)
(void) ReadBlobStringWithLongSize(image, unit_string,
- sizeof(unit_string));
+ sizeof(unit_string),exception);
}
break;
diff --git a/coders/xps.c b/coders/xps.c
index 65e6f68..8e8c9d5 100644
--- a/coders/xps.c
+++ b/coders/xps.c
@@ -328,7 +328,7 @@
Image
*cmyk_image;
- cmyk_image=ConsolidateCMYKImages(image,&image->exception);
+ cmyk_image=ConsolidateCMYKImages(image,exception);
if (cmyk_image != (Image *) NULL)
{
image=DestroyImageList(image);
diff --git a/coders/xwd.c b/coders/xwd.c
index b1be9aa..ab47d87 100644
--- a/coders/xwd.c
+++ b/coders/xwd.c
@@ -474,7 +474,7 @@
for (x=0; x < (ssize_t) image->columns; x++)
{
index=ConstrainColormapIndex(image,XGetPixel(ximage,(int) x,
- (int) y));
+ (int) y),exception);
SetPixelIndex(image,index,q);
SetPixelPixelInfo(image,image->colormap+(ssize_t) index,q);
q+=GetPixelChannels(image);
diff --git a/coders/ycbcr.c b/coders/ycbcr.c
index 342f307..2ed4d5a 100644
--- a/coders/ycbcr.c
+++ b/coders/ycbcr.c
@@ -848,7 +848,6 @@
scene++;
} while (count == (ssize_t) length);
quantum_info=DestroyQuantumInfo(quantum_info);
- InheritException(&image->exception,&canvas_image->exception);
canvas_image=DestroyImage(canvas_image);
(void) CloseBlob(image);
return(GetFirstImageInList(image));
diff --git a/coders/yuv.c b/coders/yuv.c
index ab67250..bfbb7e7 100644
--- a/coders/yuv.c
+++ b/coders/yuv.c
@@ -399,7 +399,7 @@
{
q=GetAuthenticPixels(image,0,y,image->columns,1,exception);
chroma_pixels=GetVirtualPixels(resize_image,0,y,resize_image->columns,1,
- &resize_image->exception);
+ exception);
if ((q == (Quantum *) NULL) ||
(chroma_pixels == (const Quantum *) NULL))
break;