From 4188870ac0bbf5ed0686ff74f253f54a5c46d8e0 Mon Sep 17 00:00:00 2001 From: Florent Vilmart Date: Sat, 3 Feb 2018 22:21:31 -0500 Subject: [PATCH 1/2] Fixes analyzer issues --- Parse/Parse/Internal/Commands/PFRESTQueryCommand.m | 2 +- Parse/Parse/Internal/KeyValueCache/PFKeyValueCache.h | 2 +- Parse/Parse/Internal/Object/PFObjectPrivate.h | 2 +- Parse/Parse/Internal/Object/State/PFObjectState.m | 3 ++- Parse/Parse/Internal/Object/Utilities/PFObjectUtilities.h | 6 +++--- Parse/Parse/Internal/PFAssert.h | 5 +++++ Parse/Parse/Internal/Query/Controller/PFQueryController.h | 2 +- Parse/Parse/PFEncoder.m | 2 +- Parse/Parse/PFObject.m | 2 +- 9 files changed, 16 insertions(+), 10 deletions(-) diff --git a/Parse/Parse/Internal/Commands/PFRESTQueryCommand.m b/Parse/Parse/Internal/Commands/PFRESTQueryCommand.m index f9d0b5d71..d6f6fbb8a 100644 --- a/Parse/Parse/Internal/Commands/PFRESTQueryCommand.m +++ b/Parse/Parse/Internal/Commands/PFRESTQueryCommand.m @@ -202,7 +202,7 @@ + (nullable NSDictionary *)findCommandParametersWithOrder:(NSString *)order parameters[@"where"] = whereData; } if (encodingFailed && encodingError) { - *error = encodingError; + PFSetError(error, encodingError); return nil; } diff --git a/Parse/Parse/Internal/KeyValueCache/PFKeyValueCache.h b/Parse/Parse/Internal/KeyValueCache/PFKeyValueCache.h index 5faef2bc9..7768d13f9 100644 --- a/Parse/Parse/Internal/KeyValueCache/PFKeyValueCache.h +++ b/Parse/Parse/Internal/KeyValueCache/PFKeyValueCache.h @@ -35,7 +35,7 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Getting ///-------------------------------------- -- (NSString *)objectForKey:(NSString *)key maxAge:(NSTimeInterval)age; +- (nullable NSString *)objectForKey:(NSString *)key maxAge:(NSTimeInterval)age; ///-------------------------------------- #pragma mark - Removing diff --git a/Parse/Parse/Internal/Object/PFObjectPrivate.h b/Parse/Parse/Internal/Object/PFObjectPrivate.h index 0b899fb42..93835c46e 100644 --- a/Parse/Parse/Internal/Object/PFObjectPrivate.h +++ b/Parse/Parse/Internal/Object/PFObjectPrivate.h @@ -85,7 +85,7 @@ @return Current object state. */ @property (nonatomic, copy) PFObjectState *_state; -@property (nonatomic, copy) NSMutableSet *_availableKeys; +@property (nonatomic, retain) NSMutableSet *_availableKeys; - (instancetype)initWithObjectState:(PFObjectState *)state; + (instancetype)objectWithClassName:(NSString *)className diff --git a/Parse/Parse/Internal/Object/State/PFObjectState.m b/Parse/Parse/Internal/Object/State/PFObjectState.m index 765a13700..d6edd53d2 100644 --- a/Parse/Parse/Internal/Object/State/PFObjectState.m +++ b/Parse/Parse/Internal/Object/State/PFObjectState.m @@ -7,6 +7,7 @@ * of patent rights can be found in the PATENTS file in the same directory. */ +#import "PFAssert.h" #import "PFObjectState.h" #import "PFObjectState_Private.h" @@ -129,7 +130,7 @@ - (NSDictionary *)dictionaryRepresentationWithObjectEncoder:(PFEncoder *)objectE result[key] = encoded; }]; if (failed && encodingError) { - *error = encodingError; + PFSetError(error, encodingError); return nil; } return [result copy]; diff --git a/Parse/Parse/Internal/Object/Utilities/PFObjectUtilities.h b/Parse/Parse/Internal/Object/Utilities/PFObjectUtilities.h index f4b225141..5b99a3e04 100644 --- a/Parse/Parse/Internal/Object/Utilities/PFObjectUtilities.h +++ b/Parse/Parse/Internal/Object/Utilities/PFObjectUtilities.h @@ -20,9 +20,9 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Operations ///-------------------------------------- -+ (id)newValueByApplyingFieldOperation:(PFFieldOperation *)operation - toDictionary:(NSMutableDictionary *)dictionary - forKey:(NSString *)key; ++ (nullable id)newValueByApplyingFieldOperation:(PFFieldOperation *)operation + toDictionary:(NSMutableDictionary *)dictionary + forKey:(NSString *)key; + (void)applyOperationSet:(PFOperationSet *)operationSet toDictionary:(NSMutableDictionary *)dictionary; ///-------------------------------------- diff --git a/Parse/Parse/Internal/PFAssert.h b/Parse/Parse/Internal/PFAssert.h index 2725af61a..82f269833 100644 --- a/Parse/Parse/Internal/PFAssert.h +++ b/Parse/Parse/Internal/PFAssert.h @@ -81,6 +81,11 @@ if (!(condition) && error && *error == nil) { \ return rval;\ } +#define PFSetError(errorPointer, error) \ +if (errorPointer) {\ +*errorPointer = error;\ +} + /* Returns the passed value if the condition isn't met and the *error is set */ diff --git a/Parse/Parse/Internal/Query/Controller/PFQueryController.h b/Parse/Parse/Internal/Query/Controller/PFQueryController.h index adf809457..16637df04 100644 --- a/Parse/Parse/Internal/Query/Controller/PFQueryController.h +++ b/Parse/Parse/Internal/Query/Controller/PFQueryController.h @@ -78,7 +78,7 @@ NS_ASSUME_NONNULL_BEGIN #pragma mark - Caching ///-------------------------------------- -- (NSString *)cacheKeyForQueryState:(PFQueryState *)queryState sessionToken:(nullable NSString *)sessionToken; +- (nullable NSString *)cacheKeyForQueryState:(PFQueryState *)queryState sessionToken:(nullable NSString *)sessionToken; - (BOOL)hasCachedResultForQueryState:(PFQueryState *)queryState sessionToken:(nullable NSString *)sessionToken; - (void)clearCachedResultForQueryState:(PFQueryState *)queryState sessionToken:(nullable NSString *)sessionToken; diff --git a/Parse/Parse/PFEncoder.m b/Parse/Parse/PFEncoder.m index 7af285952..b0f56a6c7 100644 --- a/Parse/Parse/PFEncoder.m +++ b/Parse/Parse/PFEncoder.m @@ -107,7 +107,7 @@ - (id)encodeObject:(id)object error:(NSError * __autoreleasing *) error { } }]; if (encodingFailed) { - *error = encodingError; + PFSetError(error, encodingError); return nil; } return dict; diff --git a/Parse/Parse/PFObject.m b/Parse/Parse/PFObject.m index e518d1bd5..574903172 100644 --- a/Parse/Parse/PFObject.m +++ b/Parse/Parse/PFObject.m @@ -245,7 +245,7 @@ + (BOOL)collectDirtyChildren:(id)node } }]; if (wasStopped) { - *error = localError; + PFSetError(error, localError); return NO; } } else if ([node isKindOfClass:[PFACL class]]) { From 5396a9a185fdd1da54d8ea0c68bdadae69b0cc65 Mon Sep 17 00:00:00 2001 From: Florent Vilmart Date: Sun, 4 Feb 2018 14:22:57 -0500 Subject: [PATCH 2/2] Disable clang flags --- .gitmodules | 2 +- Vendor/xctoolchain | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.gitmodules b/.gitmodules index 1ba7e7f70..e48e03367 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "Vendor/xctoolchain"] path = Vendor/xctoolchain - url = https://github.com/nlutsenko/xctoolchain.git + url = https://github.com/parse-community/xctoolchain.git [submodule "Carthage/Checkouts/Bolts-ObjC"] path = Carthage/Checkouts/Bolts-ObjC url = https://github.com/BoltsFramework/Bolts-ObjC.git diff --git a/Vendor/xctoolchain b/Vendor/xctoolchain index af8d7f69b..d24b2e8d0 160000 --- a/Vendor/xctoolchain +++ b/Vendor/xctoolchain @@ -1 +1 @@ -Subproject commit af8d7f69bf7a5b8e8edd94a139f83fc465b7b64a +Subproject commit d24b2e8d0049917ac88576b65c4f32d62a9a4ebd