Selaa lähdekoodia

neither Mac OS X 10.8 and iOS 6 require a dispatch_release under ARC

Geoffrey Foster 13 vuotta sitten
vanhempi
commit
aef763eeb6
3 muutettua tiedostoa jossa 24 lisäystä ja 2 poistoa
  1. 22 0
      src/FMDatabase.h
  2. 1 1
      src/FMDatabasePool.m
  3. 1 1
      src/FMDatabaseQueue.m

+ 22 - 0
src/FMDatabase.h

@@ -12,6 +12,8 @@
     #define FMDBReturnRetained FMDBRetain
 
     #define FMDBRelease(__v) ([__v release]);
+
+	#define FMDBDispatchQueueRelease(__v) (dispatch_release(__v));
 #else
     // -fobjc-arc
     #define FMDBAutorelease(__v)
@@ -21,6 +23,26 @@
     #define FMDBReturnRetained(__v) (__v)
 
     #define FMDBRelease(__v)
+
+	#if TARGET_OS_IPHONE
+		// Compiling for iOS
+		#if __IPHONE_OS_VERSION_MIN_REQUIRED >= 60000
+			// iOS 6.0 or later
+			#define FMDBDispatchQueueRelease(__v)
+		#else
+			// iOS 5.X or earlier
+			#define FMDBDispatchQueueRelease(__v) (dispatch_release(__v));
+		#endif
+	#else
+		// Compiling for Mac OS X
+		#if MAC_OS_X_VERSION_MIN_REQUIRED >= 1080     
+			// Mac OS X 10.8 or later
+			#define FMDBDispatchQueueRelease(__v)
+		#else
+			// Mac OS X 10.7 or earlier
+			#define FMDBDispatchQueueRelease(__v) (dispatch_release(__v));
+		#endif
+	#endif
 #endif
 
 

+ 1 - 1
src/FMDatabasePool.m

@@ -49,7 +49,7 @@ - (void)dealloc {
     FMDBRelease(_databaseOutPool);
     
     if (_lockQueue) {
-        dispatch_release(_lockQueue);
+        FMDBDispatchQueueRelease(_lockQueue);
         _lockQueue = 0x00;
     }
 #if ! __has_feature(objc_arc)

+ 1 - 1
src/FMDatabaseQueue.m

@@ -59,7 +59,7 @@ - (void)dealloc {
     FMDBRelease(_path);
     
     if (_queue) {
-        dispatch_release(_queue);
+        FMDBDispatchQueueRelease(_queue);
         _queue = 0x00;
     }
 #if ! __has_feature(objc_arc)