Skip to content

Commit c779312

Browse files
committed
Use kvImageNoAllocate to avoid extra allocate for vImageBuffer when WebP encoding
1 parent 0b25f9a commit c779312

File tree

1 file changed

+1
-3
lines changed

1 file changed

+1
-3
lines changed

SDWebImageWebPCoder/Classes/SDImageWebPCoder.m

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -782,7 +782,7 @@ - (nullable NSData *)sd_encodedWebpDataWithImage:(nullable CGImageRef)imageRef
782782
}
783783

784784
vImage_Buffer src;
785-
error = vImageBuffer_InitWithCGImage(&src, &srcFormat, nil, imageRef, kvImageNoFlags);
785+
error = vImageBuffer_InitWithCGImage(&src, &srcFormat, nil, imageRef, kvImageNoAllocate);
786786
if (error != kvImageNoError) {
787787
vImageConverter_Release(convertor);
788788
return nil;
@@ -792,15 +792,13 @@ - (nullable NSData *)sd_encodedWebpDataWithImage:(nullable CGImageRef)imageRef
792792
error = vImageBuffer_Init(&dest, height, width, destFormat.bitsPerPixel, kvImageNoFlags);
793793
if (error != kvImageNoError) {
794794
vImageConverter_Release(convertor);
795-
free(src.data);
796795
return nil;
797796
}
798797

799798
// Convert input color mode to RGB888/RGBA8888
800799
error = vImageConvert_AnyToAny(convertor, &src, &dest, NULL, kvImageNoFlags);
801800

802801
// Free the buffer
803-
free(src.data);
804802
vImageConverter_Release(convertor);
805803
if (error != kvImageNoError) {
806804
free(dest.data);

0 commit comments

Comments
 (0)