@@ -149,8 +149,11 @@ static MagickPixelPacket **DestroyPixelThreadSet(MagickPixelPacket **pixels)
149149 return (pixels );
150150}
151151
152- static MagickPixelPacket * * AcquirePixelThreadSet (const Image * image )
152+ static MagickPixelPacket * * AcquirePixelThreadSet (const Image * images )
153153{
154+ const Image
155+ * next ;
156+
154157 MagickPixelPacket
155158 * * pixels ;
156159
@@ -159,6 +162,7 @@ static MagickPixelPacket **AcquirePixelThreadSet(const Image *image)
159162 j ;
160163
161164 size_t
165+ columns ,
162166 number_threads ;
163167
164168 number_threads = (size_t ) GetMagickResourceLimit (ThreadResource );
@@ -167,14 +171,17 @@ static MagickPixelPacket **AcquirePixelThreadSet(const Image *image)
167171 if (pixels == (MagickPixelPacket * * ) NULL )
168172 return ((MagickPixelPacket * * ) NULL );
169173 (void ) memset (pixels ,0 ,number_threads * sizeof (* pixels ));
174+ columns = images -> columns ;
175+ for (next = images ; next != (Image * ) NULL ; next = next -> next )
176+ columns = MagickMax (next -> columns ,columns );
170177 for (i = 0 ; i < (ssize_t ) number_threads ; i ++ )
171178 {
172- pixels [i ]= (MagickPixelPacket * ) AcquireQuantumMemory (image -> columns ,
179+ pixels [i ]= (MagickPixelPacket * ) AcquireQuantumMemory (columns ,
173180 sizeof (* * pixels ));
174181 if (pixels [i ] == (MagickPixelPacket * ) NULL )
175182 return (DestroyPixelThreadSet (pixels ));
176- for (j = 0 ; j < (ssize_t ) image -> columns ; j ++ )
177- GetMagickPixelPacket (image ,& pixels [i ][j ]);
183+ for (j = 0 ; j < (ssize_t ) columns ; j ++ )
184+ GetMagickPixelPacket (images ,& pixels [i ][j ]);
178185 }
179186 return (pixels );
180187}
0 commit comments