ImageMagick-6.9.7-8差分
ImageMagick-6.9.7-7差分 - yoyaのメモの続き
The latest release of ImageMagick is version 6.9.7-8
- 7 系同時リリースは無し。
まとめ
- PDF 中の URL のエスケープ。
- PerlMagick quantum の ChannelFeatures の小数点表示の桁数を15から20に増やした
差分
- Magick ++ でネストした例外を作った時のメモリリークを修正した
Magick++/lib/Exception.cpp 4c4 < // Copyright Dirk Lemstra 2014-2015 --- > // Copyright Dirk Lemstra 2014-2017 840a841 > q=(Exception *) NULL; 854a856 > { 855a858,859 > q=nestedException; > } 858,860c862,867 < q=createException(p); < nestedException->nested(q); < nestedException=q; --- > Exception > *r; > > r=createException(p); > q->nested(r); > q=r;
ChangeLog にないもの
- ImageMagick-6.9.7-8/Magick++/lib/Thread.cpp
- pthread_mutex_destroy でエラーが出た時の処理を追加
3a4 > // Copyright Dirk Lemstra 2017 62,66c63 < int sysError; < if ( (sysError = ::pthread_mutex_destroy( &_mutex )) == 0 ) < return; < throwExceptionExplicit( OptionError, "mutex destruction failed", < strerror(sysError) ); --- > (void) ::pthread_mutex_destroy(&_mutex); 69,71c66 < if ( ::CloseHandle(_mutex.id) != 0 ) < return; < throwExceptionExplicit( OptionError, "mutex destruction failed" );
- PerlMagick/quantum/quantum.xs
- quantum の ChannelFeatures の小数点表示の桁数を15から20に増やした
#define ChannelFeatures(channel,direction) \ { \ < (void) FormatLocaleString(message,MaxTextExtent,"%.15g", \ > (void) FormatLocaleString(message,MaxTextExtent,"%.20g", \ channel_features[channel].angular_second_moment[direction]); \ <以下同様>
- coders/pdf.c
- PDF 中の URLのエスケープ
1223a1224 > *escape, 1407a1409 > escape=EscapeParenthesis(basename); 1409,1410c1411,1412 < XMPProfileMagick,modify_date,create_date,timestamp,url, < EscapeParenthesis(basename),url); --- > XMPProfileMagick,modify_date,create_date,timestamp,url,escape,url); > escape=DestroyString(escape); 2837,2838c2839,2841 < (void) FormatLocaleString(buffer,MaxTextExtent,"/Producer (%s)\n", < EscapeParenthesis(url)); --- > escape=EscapeParenthesis(url); > (void) FormatLocaleString(buffer,MaxTextExtent,"/Producer (%s)\n",escape); > escape=DestroyString(escape);
- coders/png.c
- PNGsLong を JNG_SUPPORTED の ifdef でくくるのをやめた。
1212d1211
< #if defined(JNG_SUPPORTED)
1220d1218
< #endif
- coders/psd.c
- CloneImage の NULL チェックを入れた。CloneImage は cokumns や rows が 0 の時には NULL が変える事ある。
mask=CloneImage(image,layer_info->mask.page.width, layer_info->mask.page.height,MagickFalse,exception); 1286a1287,1288 > if (mask != (Image *) NULL) > { mask->matte=MagickFalse; channel_image=mask; > }
- coders/sun.c
- メモリアクセスの境界違反対策
461c461 < sun_pixels=(unsigned char *) AcquireQuantumMemory(pixels_length, --- > sun_pixels=(unsigned char *) AcquireQuantumMemory(pixels_length+image->rows,
- coders/xcf.c
- 画像の1枚目を削除する前に、複数ある事をチェックする。
(void) CloseBlob(image); 1447a1448 > if (GetNextImageInList(image) != (Image *) NULL) DestroyImage(RemoveFirstImageFromList(&image)); if (image_type == GIMP_GRAY) image->type=GrayscaleType; return(GetFirstImageInList(image));
- magick/statistic.c
- sum や standard_:deviation に area を掛け算してる。
2276c2276,2277< area;
-
- -
> area,
> standard_deviation;
2335a2337,2339
> /*
> Compute pixel statistics.
> */
2475d2478< area=(double) image->columns*image->rows;
2479c2482,2484< mean;
-
- -
> area,
> mean,
> standard_deviation;
2481c2486,2490< mean=channel_statistics[i].sum/area;
-
- -
> /*
> Normalize pixel statistics.
> */
> area=PerceptibleReciprocal((double) image->columns*image->rows);
> mean=channel_statistics[i].sum*area;
2483,2485c2492,2494< channel_statistics[i].sum_squared/=area;< channel_statistics[i].sum_cubed/=area;< channel_statistics[i].sum_fourth_power/=area;
<以下大量に area を乗算する処理>
|
ChangeLog
2017-02-09 6.9.7-8 Dirk Lemstra <dirk@lem.....org> * Fixed memory leak when creating nested exceptions in Magick++ (reference https://www.imagemagick.org/discourse-server/viewtopic.php?f=23&p=142634) 2017-02-06 6.9.7-8 Cristy <quetzlzacatenango@image...> * Eliminate bogus assertion (reference https://github.com/ImageMagick/ImageMagick/issues/372). * Unbreak build without JPEG support (reference https://github.com/ImageMagick/ImageMagick/pull/373).