diff options
-rw-r--r-- | FMDB.podspec | 2 | ||||
-rw-r--r-- | README.markdown | 2 | ||||
-rw-r--r-- | fmdb.xcodeproj/project.pbxproj | 16 | ||||
-rw-r--r-- | src/fmdb/FMDatabase.h | 10 | ||||
-rw-r--r-- | src/fmdb/FMDatabase.m | 16 | ||||
-rw-r--r-- | src/fmdb/FMDatabaseAdditions.h | 2 | ||||
-rw-r--r-- | src/fmdb/FMDatabaseAdditions.m | 2 | ||||
-rwxr-xr-x | src/fmdb/FMDatabaseQueue.m | 2 | ||||
-rw-r--r-- | src/fmdb/FMResultSet.h | 2 | ||||
-rw-r--r-- | src/fmdb/FMResultSet.m | 2 |
10 files changed, 37 insertions, 19 deletions
diff --git a/FMDB.podspec b/FMDB.podspec index 0871ee0..eb610dc 100644 --- a/FMDB.podspec +++ b/FMDB.podspec @@ -40,7 +40,7 @@ Pod::Spec.new do |s| # use SQLCipher and enable -DSQLITE_HAS_CODEC flag s.subspec 'SQLCipher' do |ss| - ss.dependency 'SQLCipher' + ss.dependency 'SQLCipher', '~> 4.0' ss.source_files = 'src/fmdb/FM*.{h,m}' ss.exclude_files = 'src/fmdb.m' ss.xcconfig = { 'OTHER_CFLAGS' => '$(inherited) -DSQLITE_HAS_CODEC -DHAVE_USLEEP=1', 'HEADER_SEARCH_PATHS' => 'SQLCipher' } diff --git a/README.markdown b/README.markdown index a9b5dd4..012c524 100644 --- a/README.markdown +++ b/README.markdown @@ -247,7 +247,7 @@ if ([s next]) { Each of these methods also has a `{type}ForColumnIndex:` variant that is used to retrieve the data based on the position of the column in the results, as opposed to the column's name. -Typically, there's no need to `-close` an `FMResultSet` yourself, since that happens when either the result set is deallocated, or the parent database is closed. +Typically, there's no need to `-close` an `FMResultSet` yourself, since that happens when either the result set is exhausted. However, if you only pull out a single request or any other number of requests which don't exhaust the result set, you will need to call the `-close` method on the `FMResultSet`. ### Closing diff --git a/fmdb.xcodeproj/project.pbxproj b/fmdb.xcodeproj/project.pbxproj index 072f0ad..a64fe5d 100644 --- a/fmdb.xcodeproj/project.pbxproj +++ b/fmdb.xcodeproj/project.pbxproj @@ -812,6 +812,7 @@ GCC_PREFIX_HEADER = src/sample/fmdb_Prefix.pch; GCC_TREAT_WARNINGS_AS_ERRORS = YES; GCC_WARN_SHADOW = YES; + GCC_WARN_UNUSED_PARAMETER = NO; INSTALL_PATH = "$(HOME)/bin"; LIBRARY_SEARCH_PATHS = "$(LIBRARY_SEARCH_PATHS)"; PRODUCT_NAME = fmdb; @@ -833,6 +834,7 @@ GCC_PREFIX_HEADER = src/sample/fmdb_Prefix.pch; GCC_TREAT_WARNINGS_AS_ERRORS = YES; GCC_WARN_SHADOW = YES; + GCC_WARN_UNUSED_PARAMETER = NO; INSTALL_PATH = "$(HOME)/bin"; LIBRARY_SEARCH_PATHS = "$(LIBRARY_SEARCH_PATHS)"; PRODUCT_NAME = fmdb; @@ -853,6 +855,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; @@ -873,6 +876,7 @@ GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_PARAMETER = YES; GCC_WARN_UNUSED_VARIABLE = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = macosx; @@ -893,6 +897,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; @@ -908,6 +913,7 @@ GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNINITIALIZED_AUTOS = YES; GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_PARAMETER = YES; GCC_WARN_UNUSED_VARIABLE = YES; SDKROOT = macosx; }; @@ -955,6 +961,7 @@ TARGETED_DEVICE_FAMILY = 4; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; + WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Debug; }; @@ -997,6 +1004,7 @@ VALIDATE_PRODUCT = YES; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; + WATCHOS_DEPLOYMENT_TARGET = 2.0; }; name = Release; }; @@ -1269,6 +1277,7 @@ GCC_WARN_PEDANTIC = NO; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_PARAMETER = NO; INFOPLIST_FILE = "Tests/Tests-Info.plist"; MACOSX_DEPLOYMENT_TARGET = 10.8; ONLY_ACTIVE_ARCH = YES; @@ -1309,6 +1318,7 @@ GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; GCC_WARN_UNDECLARED_SELECTOR = YES; GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_PARAMETER = NO; INFOPLIST_FILE = "Tests/Tests-Info.plist"; MACOSX_DEPLOYMENT_TARGET = 10.8; OTHER_LDFLAGS = "-lsqlite3"; @@ -1323,6 +1333,7 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; COMBINE_HIDPI_IMAGES = YES; @@ -1330,6 +1341,8 @@ GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; GCC_TREAT_WARNINGS_AS_ERRORS = YES; + GCC_WARN_UNUSED_PARAMETER = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; PRODUCT_NAME = FMDB; PUBLIC_HEADERS_FOLDER_PATH = include/FMDB; }; @@ -1339,12 +1352,15 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ENABLE_OBJC_ARC = YES; CLANG_ENABLE_OBJC_WEAK = YES; CLANG_WARN_DOCUMENTATION_COMMENTS = YES; COMBINE_HIDPI_IMAGES = YES; COPY_PHASE_STRIP = YES; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_TREAT_WARNINGS_AS_ERRORS = YES; + GCC_WARN_UNUSED_PARAMETER = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; PRODUCT_NAME = FMDB; PUBLIC_HEADERS_FOLDER_PATH = include/FMDB; ZERO_LINK = NO; diff --git a/src/fmdb/FMDatabase.h b/src/fmdb/FMDatabase.h index 574db3e..defd77e 100644 --- a/src/fmdb/FMDatabase.h +++ b/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 diff --git a/src/fmdb/FMDatabase.m b/src/fmdb/FMDatabase.m index 84d8d68..e91a09b 100644 --- a/src/fmdb/FMDatabase.m +++ b/src/fmdb/FMDatabase.m @@ -22,7 +22,7 @@ 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 @@ static int FMDBDatabaseBusyHandler(void *f, int count) { #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; @@ -1286,13 +1286,15 @@ int FMDBExecuteBulkSQLCallback(void *theBlockAsVoid, int columns, char **values, if (errmsg && [self logsErrors]) { NSLog(@"Error inserting batch: %s", errmsg); + } + if (errmsg) { sqlite3_free(errmsg); } 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 +1308,7 @@ int FMDBExecuteBulkSQLCallback(void *theBlockAsVoid, int columns, char **values, #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 +1399,7 @@ static NSString *FMDBEscapeSavePointName(NSString *savepointName) { 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 +1413,7 @@ static NSString *FMDBEscapeSavePointName(NSString *savepointName) { #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 +1427,7 @@ static NSString *FMDBEscapeSavePointName(NSString *savepointName) { #endif } -- (BOOL)rollbackToSavePointWithName:(NSString*)name error:(NSError**)outErr { +- (BOOL)rollbackToSavePointWithName:(NSString*)name error:(NSError * _Nullable __autoreleasing *)outErr { #if SQLITE_VERSION_NUMBER >= 3007000 NSParameterAssert(name); diff --git a/src/fmdb/FMDatabaseAdditions.h b/src/fmdb/FMDatabaseAdditions.h index 6e8c473..b890c93 100644 --- a/src/fmdb/FMDatabaseAdditions.h +++ b/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; ///----------------------------------- diff --git a/src/fmdb/FMDatabaseAdditions.m b/src/fmdb/FMDatabaseAdditions.m index 83f6a3b..24a0ebf 100644 --- a/src/fmdb/FMDatabaseAdditions.m +++ b/src/fmdb/FMDatabaseAdditions.m @@ -222,7 +222,7 @@ return ret; #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; diff --git a/src/fmdb/FMDatabaseQueue.m b/src/fmdb/FMDatabaseQueue.m index a8fd915..2799c70 100755 --- a/src/fmdb/FMDatabaseQueue.m +++ b/src/fmdb/FMDatabaseQueue.m @@ -305,7 +305,7 @@ static const void * const kDispatchQueueSpecificKey = &kDispatchQueueSpecificKey FMDBRetain(self); dispatch_sync(_queue, ^() { - result = [self.database checkpoint:mode name:name logFrameCount:NULL checkpointCount:NULL error:&blockError]; + result = [self.database checkpoint:mode name:name logFrameCount:logFrameCount checkpointCount:checkpointCount error:&blockError]; }); FMDBRelease(self); diff --git a/src/fmdb/FMResultSet.h b/src/fmdb/FMResultSet.h index 2bbc766..b765b7a 100644 --- a/src/fmdb/FMResultSet.h +++ b/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? diff --git a/src/fmdb/FMResultSet.m b/src/fmdb/FMResultSet.m index 13f226f..4cb6525 100644 --- a/src/fmdb/FMResultSet.m +++ b/src/fmdb/FMResultSet.m @@ -160,7 +160,7 @@ return [self nextWithError:nil]; } -- (BOOL)nextWithError:(NSError **)outErr { +- (BOOL)nextWithError:(NSError * _Nullable __autoreleasing *)outErr { int rc = sqlite3_step([_statement statement]); |