Commit Graph

3360 Commits

Author SHA1 Message Date
DreamPiggy 2382c58421
Merge pull request #3484 from dreampiggy/garden/objc_bool_yes_no
Code garden to change Objc bool from true/false to YES/NO
2023-02-07 15:00:02 +08:00
DreamPiggy 6b25d9854a
Merge pull request #3483 from dreampiggy/bugfix/atomic_logic_fix
Fix the atomic logic between downloader and operation again
2023-02-07 14:59:20 +08:00
DreamPiggy f2d7610181 Change Objc BOOL true/false into correct YES/NO 2023-02-07 02:32:11 +08:00
DreamPiggy 7cec27bab9 Fix the atomic logic between downloader and operation again
Remove the wrong logic to modify queue priority when re-use operation
2023-02-07 02:31:18 +08:00
DreamPiggy 1f48e5a379 Bumped version to 5.15.1
update CHANGELOG
2023-02-06 21:57:16 +08:00
DreamPiggy eecc7e4380
Merge pull request #3480 from dreampiggy/bugfix/data_copy_crash
Remove the unused extra copy for `SDAnimatedImage` data initializer
2023-02-06 21:50:28 +08:00
DreamPiggy 247cbcfd97
Merge pull request #3479 from dreampiggy/bugfix/fix_async_block_operation_race
Try to fix the SDAsyncBlockOperation's race condition
2023-02-06 21:49:43 +08:00
DreamPiggy fbe8880ab7 Remove the unused extra copy for `SDAnimatedImage` data initializer 2023-02-06 21:11:59 +08:00
DreamPiggy 02969011b0 Try to fix the SDAsyncBlockOperation's race condition
Use the correct way for subclassing NSOperation
2023-02-06 21:05:51 +08:00
DreamPiggy a052164350
Merge pull request #3477 from dreampiggy/bugfix/ensure_downloader_callback_atomic
Ensure the Downloader and DownloaderOperation callback the completion in atomic and never miss one
2023-02-06 20:41:10 +08:00
DreamPiggy 1ec6cd06f7 Change all placeholder.com sample from http into https 2023-02-06 18:56:25 +08:00
DreamPiggy b6910be155 Added test case `test31ThatMultipleRequestForSameURLNeverSkipCallback` to ensure all download request for same url always callback 2023-02-06 18:52:46 +08:00
DreamPiggy 0c94e540bc Revert back the NSOperationQueue, seems has better performance on this cases (may dispatch multiple block but not important, one finished is OK) 2023-02-06 16:09:07 +08:00
DreamPiggy 6e1fee7834 Try not introduce new public API for operation, attach the `isCompleted` property using associated object from downloader, ensure compatibility 2023-02-06 15:06:54 +08:00
DreamPiggy 43b94130c7 Ensure the DownloaderOperation callback the completion in atomic and never miss one
The downloader will now check and ignore a `transferedDataFinished` operation (which is callbacking its own completion), because it's not safe in multi-thread environment, create new network request instead
2023-02-03 19:02:07 +08:00
DreamPiggy f25cc6bb1c
Merge pull request #3474 from dreampiggy/bugfix/atomic_fix
Avoid compiler generate the wrong property attribute with non-atomic
2023-01-22 14:12:35 +08:00
DreamPiggy a66ff8e5c9 Avoid compiler generate the wrong property attribute with non-atomic 2023-01-22 11:45:19 +08:00
DreamPiggy 8a6dcf8882
Merge pull request #3473 from dreampiggy/bugfix/create_options
Fix the issue the fallback logic of ImageIO Source should avoid passing any UTI hint
2023-01-22 11:43:31 +08:00
DreamPiggy a80af99d0a Fix the issue the fallback logic of ImageIO Source should avoid passing any UTI hint 2023-01-22 11:23:18 +08:00
DreamPiggy 6f8121c604
Merge pull request #3471 from GiddyGoatGaming/patch-1
Bump actions/checkout to v3
2023-01-19 12:08:08 +08:00
Spencer Comfort 5b34168e64
Bump actions/checkout to v3 2023-01-17 06:50:50 -05:00
DreamPiggy 6c6b951845 Bumped version to 5.15.0
update CHANGELOG
2023-01-17 17:10:01 +08:00
DreamPiggy 975502b4a6
Merge pull request #3469 from dreampiggy/feat/animated_image_encode
Added encodeWithFrames API for animation encoding in custom coder, better for usage
2023-01-17 16:50:50 +08:00
DreamPiggy 9dd8b6c08b Update test case 2023-01-17 16:50:16 +08:00
DreamPiggy a01715e196
Merge pull request #3468 from dreampiggy/feat/decode_solution_change
Update the decode solution to allows CoreGraphics avoid using any UIKit method
2023-01-17 16:20:07 +08:00
DreamPiggy 0bdb7865c7 Change the immutable frames array 2023-01-17 16:18:17 +08:00
DreamPiggy 985c84be75 Opt the macOS legacy animated encode, with the weak assigned frames to avoid re-decode again
It's still recommended to use the new API
2023-01-17 16:16:09 +08:00
DreamPiggy 8ec3bc83d7 Added encodeWithFrames API for animation encoding in custom coder, better for usage
The exist API need wrap the frames into a new image and extract, consume RAM and CPU
2023-01-17 15:28:26 +08:00
DreamPiggy c0f7023472 Update the decode solution to allows CoreGraphics avoid using any UIKit method
This is back compatible to old version's RAM behavior
2023-01-17 15:27:36 +08:00
DreamPiggy 7c63bad41c
Merge pull request #3466 from dreampiggy/feat/encode_options
Added `SDWebImageContextImageEncodeOptions` to pass encode options like compression quality to SDImageCache storeImage API. Seperate the SDImageCache encode queue and IO queue to match waitStoreCache behavior
2023-01-12 16:35:50 +08:00
DreamPiggy 911a9a86a0 Fix the wrong test because now ioQueue and encodeQueue is different thing, we should not assume calling storeImage and queryDiskCache get the data (they are not guarded by the same serial queue) 2023-01-12 15:56:08 +08:00
DreamPiggy e083ab293f Fix the wrong behavior after 5.15.0 cache changes 2023-01-12 14:49:02 +08:00
DreamPiggy 78fa0a9cb5 Update test case test08ThatImageTransformerWork with encode options 2023-01-11 16:38:00 +08:00
DreamPiggy 08ec6cf253 Adjustment for manager && cache call, add deprecation 2023-01-11 16:00:16 +08:00
DreamPiggy 246cfa935d Change the cache's encoding in global queue to avoid block ioQueue for IO read/write, performance related 2023-01-11 15:32:04 +08:00
DreamPiggy d93a08fc91 Added `SDWebImageContextImageEncodeOptions` to pass encode options like compression quality to SDImageCache storeImage API 2023-01-11 15:08:31 +08:00
DreamPiggy 05f7fb9b0d
Merge pull request #3465 from dreampiggy/feat/callback_queue
Added context option `callbackQueue` and `SDCallbackQueue` wrapper for advanced user to control which queue to callback
2023-01-10 14:38:00 +08:00
DreamPiggy 720a0974d4 Fix SwiftPM issue 2023-01-10 12:49:20 +08:00
DreamPiggy 397f851240 Update test case 2023-01-09 22:14:53 +08:00
DreamPiggy e21e9f19e6 Update Carthage project 2023-01-09 22:08:48 +08:00
DreamPiggy e1e0841102 Rename the internal property to avoid misleading 2023-01-09 22:08:48 +08:00
DreamPiggy 007100d18f Supports the old store cache API without context, which does not supports callback queue customization 2023-01-09 22:08:48 +08:00
DreamPiggy 1b086711ae Fix the issue because of main queue label hack 2023-01-09 22:08:48 +08:00
DreamPiggy 43d74211c3 Added test case `testSDCallbackQueue` 2023-01-09 22:08:48 +08:00
DreamPiggy 90eeb4d830 Deprecate SDWebImagePrefetcher.delegateQueue, translate to use context[SDWebImageContextCallbackQueue] instead 2023-01-09 18:06:14 +08:00
DreamPiggy 5a4b4cf16d Change the asyncSafe to the queue level configuration, introduce SDCallbackPolicy 2023-01-09 18:06:14 +08:00
DreamPiggy 67520b9f55 Fix the new added storeCache API which passing callbackQueue 2023-01-06 19:49:35 +08:00
DreamPiggy fdd9a98210 Do not check nil block, useless in our use case 2023-01-06 19:36:03 +08:00
DreamPiggy 57403c9d3f Rename to use `dispatch_block_t` alias 2023-01-06 19:09:39 +08:00
DreamPiggy b5d712a378 Implements the Callback queue dispatch
Fix some missing components
2023-01-06 18:52:31 +08:00