Browse Source

Fix compilation for enabled CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE

Rimas Mickevičius 7 years ago
parent
commit
b518511bd2

+ 2 - 0
fmdb.xcodeproj/project.pbxproj

@@ -853,6 +853,7 @@
 				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
 				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE = YES;
 				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
@@ -893,6 +894,7 @@
 				CLANG_WARN_INFINITE_RECURSION = YES;
 				CLANG_WARN_INT_CONVERSION = YES;
 				CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+				CLANG_WARN_OBJC_EXPLICIT_OWNERSHIP_TYPE = YES;
 				CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
 				CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
 				CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;

+ 5 - 5
src/fmdb/FMDatabase.h

@@ -338,7 +338,7 @@ typedef NS_ENUM(int, FMDBCheckpointMode) {
  @see [`sqlite3_bind`](http://sqlite.org/c3ref/bind_blob.html)
  */
 
-- (BOOL)executeUpdate:(NSString*)sql withErrorAndBindings:(NSError * _Nullable *)outErr, ...;
+- (BOOL)executeUpdate:(NSString*)sql withErrorAndBindings:(NSError * _Nullable __autoreleasing *)outErr, ...;
 
 /** Execute single update statement
  
@@ -347,7 +347,7 @@ typedef NS_ENUM(int, FMDBCheckpointMode) {
  @warning **Deprecated**: Please use `<executeUpdate:withErrorAndBindings>` instead.
  */
 
-- (BOOL)update:(NSString*)sql withErrorAndBindings:(NSError * _Nullable*)outErr, ...  __deprecated_msg("Use executeUpdate:withErrorAndBindings: instead");;
+- (BOOL)update:(NSString*)sql withErrorAndBindings:(NSError * _Nullable __autoreleasing *)outErr, ...  __deprecated_msg("Use executeUpdate:withErrorAndBindings: instead");;
 
 /** Execute single update statement
 
@@ -985,7 +985,7 @@ typedef NS_ENUM(int, FMDBCheckpointMode) {
  @see rollbackToSavePointWithName:error:
  */
 
-- (BOOL)startSavePointWithName:(NSString*)name error:(NSError * _Nullable *)outErr;
+- (BOOL)startSavePointWithName:(NSString*)name error:(NSError * _Nullable __autoreleasing *)outErr;
 
 /** Release save point
 
@@ -1000,7 +1000,7 @@ typedef NS_ENUM(int, FMDBCheckpointMode) {
  
  */
 
-- (BOOL)releaseSavePointWithName:(NSString*)name error:(NSError * _Nullable *)outErr;
+- (BOOL)releaseSavePointWithName:(NSString*)name error:(NSError * _Nullable __autoreleasing *)outErr;
 
 /** Roll back to save point
 
@@ -1014,7 +1014,7 @@ typedef NS_ENUM(int, FMDBCheckpointMode) {
  
  */
 
-- (BOOL)rollbackToSavePointWithName:(NSString*)name error:(NSError * _Nullable *)outErr;
+- (BOOL)rollbackToSavePointWithName:(NSString*)name error:(NSError * _Nullable __autoreleasing *)outErr;
 
 /** Start save point
 

+ 7 - 7
src/fmdb/FMDatabase.m

@@ -22,7 +22,7 @@ @interface FMDatabase () {
 NS_ASSUME_NONNULL_BEGIN
 
 - (FMResultSet * _Nullable)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray * _Nullable)arrayArgs orDictionary:(NSDictionary * _Nullable)dictionaryArgs orVAList:(va_list)args;
-- (BOOL)executeUpdate:(NSString *)sql error:(NSError * _Nullable *)outErr withArgumentsInArray:(NSArray * _Nullable)arrayArgs orDictionary:(NSDictionary * _Nullable)dictionaryArgs orVAList:(va_list)args;
+- (BOOL)executeUpdate:(NSString *)sql error:(NSError * _Nullable __autoreleasing *)outErr withArgumentsInArray:(NSArray * _Nullable)arrayArgs orDictionary:(NSDictionary * _Nullable)dictionaryArgs orVAList:(va_list)args;
 
 NS_ASSUME_NONNULL_END
 
@@ -987,7 +987,7 @@ - (FMResultSet *)executeQuery:(NSString*)sql withVAList:(va_list)args {
 
 #pragma mark Execute updates
 
-- (BOOL)executeUpdate:(NSString*)sql error:(NSError**)outErr withArgumentsInArray:(NSArray*)arrayArgs orDictionary:(NSDictionary *)dictionaryArgs orVAList:(va_list)args {
+- (BOOL)executeUpdate:(NSString*)sql error:(NSError * _Nullable __autoreleasing *)outErr withArgumentsInArray:(NSArray*)arrayArgs orDictionary:(NSDictionary *)dictionaryArgs orVAList:(va_list)args {
     
     if (![self databaseExists]) {
         return NO;
@@ -1292,7 +1292,7 @@ - (BOOL)executeStatements:(NSString *)sql withResultBlock:(__attribute__((noesca
     return (rc == SQLITE_OK);
 }
 
-- (BOOL)executeUpdate:(NSString*)sql withErrorAndBindings:(NSError**)outErr, ... {
+- (BOOL)executeUpdate:(NSString*)sql withErrorAndBindings:(NSError * _Nullable __autoreleasing *)outErr, ... {
     
     va_list args;
     va_start(args, outErr);
@@ -1306,7 +1306,7 @@ - (BOOL)executeUpdate:(NSString*)sql withErrorAndBindings:(NSError**)outErr, ...
 
 #pragma clang diagnostic push
 #pragma clang diagnostic ignored "-Wdeprecated-implementations"
-- (BOOL)update:(NSString*)sql withErrorAndBindings:(NSError**)outErr, ... {
+- (BOOL)update:(NSString*)sql withErrorAndBindings:(NSError * _Nullable __autoreleasing *)outErr, ... {
     va_list args;
     va_start(args, outErr);
     
@@ -1397,7 +1397,7 @@ - (BOOL)interrupt
     return [savepointName stringByReplacingOccurrencesOfString:@"'" withString:@"''"];
 }
 
-- (BOOL)startSavePointWithName:(NSString*)name error:(NSError**)outErr {
+- (BOOL)startSavePointWithName:(NSString*)name error:(NSError * _Nullable __autoreleasing *)outErr {
 #if SQLITE_VERSION_NUMBER >= 3007000
     NSParameterAssert(name);
     
@@ -1411,7 +1411,7 @@ - (BOOL)startSavePointWithName:(NSString*)name error:(NSError**)outErr {
 #endif
 }
 
-- (BOOL)releaseSavePointWithName:(NSString*)name error:(NSError**)outErr {
+- (BOOL)releaseSavePointWithName:(NSString*)name error:(NSError * _Nullable __autoreleasing *)outErr {
 #if SQLITE_VERSION_NUMBER >= 3007000
     NSParameterAssert(name);
     
@@ -1425,7 +1425,7 @@ - (BOOL)releaseSavePointWithName:(NSString*)name error:(NSError**)outErr {
 #endif
 }
 
-- (BOOL)rollbackToSavePointWithName:(NSString*)name error:(NSError**)outErr {
+- (BOOL)rollbackToSavePointWithName:(NSString*)name error:(NSError * _Nullable __autoreleasing *)outErr {
 #if SQLITE_VERSION_NUMBER >= 3007000
     NSParameterAssert(name);
     

+ 1 - 1
src/fmdb/FMDatabaseAdditions.h

@@ -207,7 +207,7 @@ NS_ASSUME_NONNULL_BEGIN
  
  */
 
-- (BOOL)validateSQL:(NSString*)sql error:(NSError * _Nullable *)error;
+- (BOOL)validateSQL:(NSString*)sql error:(NSError * _Nullable __autoreleasing *)error;
 
 
 ///-----------------------------------

+ 1 - 1
src/fmdb/FMDatabaseAdditions.m

@@ -222,7 +222,7 @@ - (BOOL)columnExists:(NSString*)tableName columnName:(NSString*)columnName __att
 
 #pragma clang diagnostic pop
 
-- (BOOL)validateSQL:(NSString*)sql error:(NSError**)error {
+- (BOOL)validateSQL:(NSString*)sql error:(NSError * _Nullable __autoreleasing *)error {
     sqlite3_stmt *pStmt = NULL;
     BOOL validationSucceeded = YES;
     

+ 1 - 1
src/fmdb/FMResultSet.h

@@ -89,7 +89,7 @@ NS_ASSUME_NONNULL_BEGIN
  @see hasAnotherRow
  */
 
-- (BOOL)nextWithError:(NSError * _Nullable *)outErr;
+- (BOOL)nextWithError:(NSError * _Nullable __autoreleasing *)outErr;
 
 /** Did the last call to `<next>` succeed in retrieving another row?
 

+ 1 - 1
src/fmdb/FMResultSet.m

@@ -160,7 +160,7 @@ - (BOOL)next {
     return [self nextWithError:nil];
 }
 
-- (BOOL)nextWithError:(NSError **)outErr {
+- (BOOL)nextWithError:(NSError * _Nullable __autoreleasing *)outErr {
     
     int rc = sqlite3_step([_statement statement]);