Skip to content

Commit 2f74cf9

Browse files
committed
Fix the case that CGColorSync will cache the profile and so data buffer with CFDataCreateWithBytesNoCopy may fail on some cases
Always copy the data buffer via `CFDataCreate`
1 parent 99e6c22 commit 2f74cf9

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

SDWebImageAVIFCoder/Classes/ColorSpace.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ void SDAVIFCalcColorSpaceMono(avifImage * avif, CGColorSpaceRef* ref, BOOL* shou
215215
}
216216
if(avif->icc.data && avif->icc.size) {
217217
if(@available(macOS 10.12, iOS 10.0, tvOS 10.0, *)) {
218-
CFDataRef iccData = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, avif->icc.data, avif->icc.size,kCFAllocatorNull);
218+
CFDataRef iccData = CFDataCreate(kCFAllocatorDefault, avif->icc.data, avif->icc.size);
219219
*ref = CGColorSpaceCreateWithICCData(iccData);
220220
CFRelease(iccData);
221221
*shouldRelease = TRUE;
@@ -313,7 +313,7 @@ void SDAVIFCalcColorSpaceRGB(avifImage * avif, CGColorSpaceRef* ref, BOOL* shoul
313313
}
314314
if(avif->icc.data && avif->icc.size) {
315315
if(@available(macOS 10.12, iOS 10.0, tvOS 10.0, *)) {
316-
CFDataRef iccData = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, avif->icc.data, avif->icc.size,kCFAllocatorNull);
316+
CFDataRef iccData = CFDataCreate(kCFAllocatorDefault, avif->icc.data, avif->icc.size);
317317
*ref = CGColorSpaceCreateWithICCData(iccData);
318318
CFRelease(iccData);
319319
*shouldRelease = TRUE;

0 commit comments

Comments
 (0)