From 1f0a8f4b13f92093a3ee59525b4f87b93be0d55f Mon Sep 17 00:00:00 2001 From: Olivier Poitrey Date: Tue, 6 Nov 2012 17:14:20 +0100 Subject: [PATCH] Use the correct setter sementics for dispatch (fix 213) --- SDWebImage/SDImageCache.m | 2 +- SDWebImage/SDWebImageCompat.h | 13 ++++++++++++- SDWebImage/SDWebImageDownloader.m | 4 ++-- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/SDWebImage/SDImageCache.m b/SDWebImage/SDImageCache.m index e38eb79..b12d483 100644 --- a/SDWebImage/SDImageCache.m +++ b/SDWebImage/SDImageCache.m @@ -19,7 +19,7 @@ static const NSInteger kDefaultCacheMaxCacheAge = 60 * 60 * 24 * 7; // 1 week @property (strong, nonatomic) NSCache *memCache; @property (strong, nonatomic) NSString *diskCachePath; -@property (assign, nonatomic) dispatch_queue_t ioQueue; +@property (SDDispatchQueueSetterSementics, nonatomic) dispatch_queue_t ioQueue; @end diff --git a/SDWebImage/SDWebImageCompat.h b/SDWebImage/SDWebImageCompat.h index 7dc92cf..418bf98 100644 --- a/SDWebImage/SDWebImageCompat.h +++ b/SDWebImage/SDWebImageCompat.h @@ -35,17 +35,28 @@ // @see https://github.com/ccgus/fmdb/commit/aef763eeb64e6fa654e7d121f1df4c16a98d9f4f #define SDDispatchQueueRelease(q) (dispatch_release(q)) - #if TARGET_OS_IPHONE #if __IPHONE_OS_VERSION_MIN_REQUIRED >= 60000 + #undef SDDispatchQueueRelease #define SDDispatchQueueRelease(q) + #undef SDDispatchQueueSetterSementics + #define SDDispatchQueueSetterSementics strong #endif #else #if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 + #undef SDDispatchQueueRelease #define SDDispatchQueueRelease(q) + #undef SDDispatchQueueSetterSementics + #define SDDispatchQueueSetterSementics strong #endif #endif +#if OS_OBJECT_USE_OBJC + #define SDDispatchQueueSetterSementics strong +#else + #define SDDispatchQueueSetterSementics assign +#endif + NS_INLINE UIImage *SDScaledImageForPath(NSString *path, NSObject *imageOrData) { if (!imageOrData) diff --git a/SDWebImage/SDWebImageDownloader.m b/SDWebImage/SDWebImageDownloader.m index 40617ce..e467dc2 100644 --- a/SDWebImage/SDWebImageDownloader.m +++ b/SDWebImage/SDWebImageDownloader.m @@ -21,8 +21,8 @@ NSString *const kCompletedCallbackKey = @"completed"; @property (strong, nonatomic) NSOperationQueue *downloadQueue; @property (strong, nonatomic) NSMutableDictionary *URLCallbacks; // This queue is used to serialize the handling of the network responses of all the download operation in a single queue -@property (assign, nonatomic) dispatch_queue_t workingQueue; -@property (assign, nonatomic) dispatch_queue_t barrierQueue; +@property (SDDispatchQueueSetterSementics, nonatomic) dispatch_queue_t workingQueue; +@property (SDDispatchQueueSetterSementics, nonatomic) dispatch_queue_t barrierQueue; @end