ImageMagick-6.9.10-21差分
ImageMagick-6.9.10-20差分 - yoya's diaryの続き
The latest release of ImageMagick is version 6.9.10-21
- 7 系同時リリースは ImageMagick-7.0.8-21
まとめ
- SeekBlog を off_t が表現出来るオフセットとする
気になる事
- メモリのアラインメントをとる処理が追加されてるので、もしかしたら高速化?
差分
- Check to ensure SeekBlob() offset can be represented in an off_t.
- magick/blob.c
276c276,277 < count=write(file,(const char *) blob+i,MagickMin(length-i,SSIZE_MAX)); --- > count=write(file,(const char *) blob+i,MagickMin(length-i,(size_t) > SSIZE_MAX)); 1190c1191 < count=read(file,blob+i,MagickMin(*length-i,SSIZE_MAX)); --- > count=read(file,blob+i,MagickMin(*length-i,(size_t) SSIZE_MAX)); 4297a4299,4304 > if (((offset > 0) && (blob_info->offset > (SSIZE_MAX-offset))) || > ((offset < 0) && (blob_info->offset < (-SSIZE_MAX-offset)))) > { > errno=EOVERFLOW; > return(-1); > }
ChangeLog にない差分
- coders/heic.c
- Orientation 対応
coders/heic.c 314a315,320 > /* > There is a discrepancy between EXIF data and the actual orientation of > image pixels. ReadImage processes "exif:Orientation" expecting pixels to b e > oriented accordingly. However, in HEIF the pixels are NOT rotated. > */ > SetImageProperty(image, "exif:Orientation", "1", exception); || - magick/cache.c -- メモリのアラインメント >|c| 360c360,362 < cache_info=(CacheInfo *) AcquireCriticalMemory(sizeof(*cache_info)); --- > cache_info=(CacheInfo *) AcquireAlignedMemory(1,sizeof(*cache_info)); > if (cache_info == (CacheInfo *) NULL) > ThrowFatalException(ResourceLimitFatalError,"MemoryAllocationFailed"); 1196c1198 < cache_info=(CacheInfo *) RelinquishMagickMemory(cache_info); --- > cache_info=(CacheInfo *) RelinquishAlignedMemory(cache_info); 5098,5099c5100,5101 < const CacheInfo *magick_restrict cache_info,NexusInfo *nexus_info, < ExceptionInfo *exception) --- > const CacheInfo *magick_restrict cache_info,const MagickSizeType length, > NexusInfo *nexus_info,ExceptionInfo *exception) 5101c5103 < if (nexus_info->length != (MagickSizeType) ((size_t) nexus_info->length)) --- > if (length != (MagickSizeType) ((size_t) length)) 5102a5105,5106 > nexus_info->length=0; > nexus_info->mapped=MagickFalse; <略>
- magick/memory.c
- メモリのアラインメント
246a247 > #define AlignedPowerOf2(x) ((((x) - 1) & (x)) == 0) 273a275,285 > if ((alignment == 0) || (alignment % sizeof(void *) != 0) || > (AlignedPowerOf2(alignment/sizeof (void *)) == 0)) > { > errno=EINVAL; > return((void *) NULL); > } > if (size > (SIZE_MAX-alignment-sizeof(void *)-1)) > { > errno=ENOMEM; > return((void *) NULL); > }
ChangeLog
2018-12-27 6.9.10-21 Cristy <quetzlzacatenango@image...> * Release ImageMagick version 6.9.10-21, GIT revision 14088:1961662c1:20181227 2018-12-27 6.9.10-21 Cristy <quetzlzacatenango@image...> * Check to ensure SeekBlob() offset can be represented in an off_t.