Commit Graph

3362 Commits

Author SHA1 Message Date
DreamPiggy abc06f020a Added `SDImageCoderDecodeUseLazyDecoding` to control whether to use lazy-decoding for ImageIO or not
Defaults to NO for animated image coder but YES for static image coder to match current behavior
This also use another way to solve iOS 15+'s CGImageGetImageSource issue
2022-11-07 12:10:22 +08:00
DreamPiggy ddcf347c7d Update README about GitHub action status 2022-11-01 14:20:44 +08:00
DreamPiggy 5ee6ac2476
Merge pull request #3423 from dreampiggy/feature/refactor_thumbnail_hack_with_decode_options
Refactor the hack for multiple thumbnail image request at the same time
2022-11-01 00:14:17 +08:00
DreamPiggy 279f636ac5 Minor check the logic that UTI has high priority than path extension 2022-10-31 23:52:32 +08:00
DreamPiggy e3c6cfa066 Update test case to make clear that transformed image and thumbnailed image will callback without data 2022-10-31 23:52:32 +08:00
DreamPiggy 980e0dd14a Added test case test30ThatDifferentThumbnailLoadShouldCallbackDifferentSize 2022-10-31 23:52:32 +08:00
DreamPiggy 2fd75638fe Refactor the hack for multiple thumbnail image request at the same time
1. Put the hack logic into SDWebImageDownloadOperation, each different thumbnail image request will have its callback with desired size of image using different decoding call.
2. Progressive Thumbnail decoding (use together) does not have this behavior, because I think progressive thumbnail is really rare and tolerant, people just use the first thumbnail size image for preview and OK.
3. The manager logic refactor with separate steps, focus on clear to understand the complicated logic and maintainess
4. The thumbnail decode/transformed will callback valid image, but with nil data, this matches the behavior as wiki pages.
2022-10-31 23:52:32 +08:00
DreamPiggy 4a72e4fee2
Merge pull request #3421 from dreampiggy/feature/decode_options_in_from_loader_instead
Introduce SDWebImageContextImageDecodeOptions, deprecate SDImageCoderWebImageContext
2022-10-30 18:34:30 +08:00
DreamPiggy 851b60e0f3 Added test case `test20ThatContextPassDecodeOptionsWorks` 2022-10-30 17:55:16 +08:00
DreamPiggy 2f3652dc2e Feature: Introduce SDWebImageContextImageDecodeOptions, deprecate SDImageCoderWebImageContext
This can solve the retain cycle from the scratch, instead of hacking
2022-10-29 20:51:11 +08:00
DreamPiggy b014808ddd Merge branch '5.13.x' of github.com:SDWebImage/SDWebImage
# Conflicts:
#	SDWebImage/Core/SDImageCacheDefine.m
2022-10-29 20:40:00 +08:00
DreamPiggy 318cca556b Fix the issue that progressive decode logic does not get updated 2022-10-29 20:34:04 +08:00
DreamPiggy 55a3809412 Bumped version to 5.13.5
update CHANGELOG
2022-10-29 20:26:05 +08:00
DreamPiggy 34f2a9b823
Merge pull request #3420 from dreampiggy/fix_5.13_retain_cycle_web_context
Quick fix the issue that UIImage.sd_decodeOptions cause retain cycle when pass custom cache in context option
2022-10-29 20:22:21 +08:00
DreamPiggy b46fe38c72 Quick fix the issue that UIImage.sd_decodeOptions cause retain cycle when pass custom cache in context option
Now the SDImageCoderWebImageContext does not pass the built-in options, only custom options will be passed, and deprecated in 5.14.0
2022-10-29 19:50:45 +08:00
DreamPiggy 3a52ef5aeb
Merge pull request #3419 from dreampiggy/feature/tiff_uti_hint
Support use url.path or custom UTI hint passed to ImageIO, solve the TIFF/NEF/SRW raw image decoding with wrong size
2022-10-29 18:34:56 +08:00
DreamPiggy 8dd6e25cd8 Added NEF test case, as well as BMP type enum
The file extension hint works on iOS/macOS for current
2022-10-29 18:13:36 +08:00
DreamPiggy b1b16a17b3 Support use url.path or custom UTI hint passed to ImageIO, solve the TIFF/NEF/SRW raw image decoding with wrong size
This is because file extension will cause ImageIO use different codec, which does not support all of them without context
2022-10-27 11:11:28 +08:00
DreamPiggy 9248fe561a Bumped version to 5.13.4
update CHANGELOG
2022-09-26 20:57:44 +08:00
DreamPiggy 3c7c949637
Merge pull request #3408 from dreampiggy/threadsafe_fix_imageio_incremental_animation
Fix the potential out of bounds crash for ImageIO incremental animation decoding (like GIF)
2022-09-26 20:55:27 +08:00
DreamPiggy 364034d11a Fix test cases `test15CancelQueryShouldCallbackOnceInSync` 2022-09-26 18:43:26 +08:00
DreamPiggy 080db1afb9 Try to investigate test case failure issue 2022-09-26 18:24:41 +08:00
DreamPiggy 9b2ddc9ea8 [NFC] A little optimization for MutableArray creation 2022-09-26 17:38:37 +08:00
DreamPiggy 347cf1d1cc Fix the potential out of bounds crash for ImageIO incremental animation decoding (like GIF)
This patch from the SDWebImageWebPCoder/pull/68
2022-09-26 17:32:25 +08:00
DreamPiggy 484bc774e1 Bumped version to 5.13.3
update CHANGELOG
2022-09-19 18:36:04 +08:00
DreamPiggy 9f9d226083
Merge pull request #3387 from dreampiggy/thread_safe_ios15_animation_cgimage_retain_source
Try to workaround iOS 15+ crash that CGImage retain the CGImageSource during animation image playing
2022-09-19 18:30:51 +08:00
DreamPiggy ea9f573744 Remove the temp assert code (for debugging usage) 2022-09-19 18:30:13 +08:00
DreamPiggy 89178a7d89 Update to force decode CGImage before any UIImage initialization on iOS 15+ 2022-09-19 18:30:13 +08:00
DreamPiggy 3994006cb4 Try to workaround iOS 15+ crash that CGImage retain the CGImageSource during animation image playing
This used to work on iOS 14
2022-09-19 18:30:13 +08:00
DreamPiggy 524d4f53eb
Merge pull request #3403 from dreampiggy/revert_isCancelled_block_with_recursive
Fix the crash because of SDWebImageCombinedOperation recursive lock
2022-09-19 18:20:06 +08:00
DreamPiggy 6b8075a2e1 Using the same synchornized to guard _cancelled status, which need recursive lock
DO NOT USE SD_LOCK (os_unfair_lock), which not support recursive
2022-09-19 17:33:04 +08:00
DreamPiggy ad592765cb Revert "Synchronise getter and setter of the cancelled property of the SDWebImageCombinedOperation in order to eliminate data race."
This reverts commit 5a18c84529.
2022-09-19 17:28:38 +08:00
DreamPiggy 122c3d7ca5
Merge pull request #3402 from dreampiggy/fix_macOS_animatedview_render
Fix the switching from animated image rendering to static image does not works on macOS 11+
2022-09-19 17:23:56 +08:00
DreamPiggy 61c3c5ba2d Fix the switching from animated image rendering to static image does not works on macOS 11+
We should always provide a fallback solution to handle built-in NSImageView logic
2022-09-19 16:27:21 +08:00
DreamPiggy d3b111deb1
Merge pull request #3401 from dreampiggy/fix_unlock_unbalanced
Fix the unbalanced lock which cause crash
2022-09-19 14:30:03 +08:00
DreamPiggy 6eb74a177f Fix the unbalanced lock which cause crash 2022-09-19 12:05:41 +08:00
DreamPiggy 3a6e01ab20
Merge pull request #3393 from alexander-gaidukov/synchronize_operation_cancellation
Synchronise getter and setter of the cancelled property of the SDWebImageCombinedOperation
2022-09-09 18:15:44 +08:00
Alexander Gaidukov 5a18c84529 Synchronise getter and setter of the cancelled property of the SDWebImageCombinedOperation in order to eliminate data race. 2022-09-06 21:08:25 +07:00
DreamPiggy 3e48cb68d8 Bumped version to 5.13.2
update CHANGELOG
2022-07-23 23:09:12 +08:00
DreamPiggy 7d7debbd26
Merge pull request #3380 from dreampiggy/bugfix_edge_case_cancel_cache_callback_twice
Fix the rare case when cancel an async disk cache query may cause twice callback
2022-07-23 23:04:55 +08:00
DreamPiggy bcaf918b83 Fix the old test case warning 2022-07-23 22:43:01 +08:00
DreamPiggy 62e3a8f52a Update test case about the cacheOperation and loaderOperation 2022-07-23 22:31:52 +08:00
DreamPiggy 3d1197b820 When download start, mark the query cache operation finished to avoid bug behavior 2022-07-23 21:59:14 +08:00
DreamPiggy 2729096221 Added test case `test15CancelQueryShouldCallbackOnceInSync` 2022-07-23 21:26:18 +08:00
DreamPiggy 0643cb81c3 Fix the rare case when cancel an async disk cache query may cause twice callback
One is sync and another is async
2022-07-23 21:15:00 +08:00
DreamPiggy b88d576f75
Merge pull request #3379 from amonshiz/patch-1
Fix pragma mark typo
2022-07-23 16:39:13 +08:00
Andrew Monshizadeh 2bad528bfb
Fix pragma mark typo
Built and noticed this warning
```
external/SDWebImage/SDWebImage/Core/NSButton+WebCache.m:152:9: warning: unknown pragma ignored [-Wunknown-pragmas]
#pragma mar - Private
        ^
```
2022-07-22 21:49:09 -06:00
DreamPiggy cc1995b738 Bumped version to 5.13.1
update CHANGELOG
2022-07-16 19:54:13 +08:00
DreamPiggy 7269107908
Merge pull request #3373 from dreampiggy/fix_clang_analyze_issue
Fix the clang analyze issue
2022-07-16 19:46:17 +08:00
DreamPiggy 0757241822 Fix the clang analyze issue 2022-07-16 19:43:48 +08:00