Skip to content

Commit c6b662a

Browse files
committed
fixes as per review
1 parent 637626a commit c6b662a

File tree

2 files changed

+17
-19
lines changed

2 files changed

+17
-19
lines changed

Parse/PFObject.m

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2314,30 +2314,26 @@ - (void)removeObjectForKey:(NSString *)key {
23142314
}
23152315

23162316
- (void)revert {
2317-
@synchronized (lock) {
2318-
if ([self isDirty]) {
2319-
NSMutableArray *removedKeys = [NSMutableArray array];
2320-
[removedKeys addObjectsFromArray: [self allKeys]];
2321-
for (PFOperationSet *operationSet in operationSetQueue) {
2322-
for (NSString *key in operationSet.keyEnumerator) {
2323-
[removedKeys addObject:key];
2324-
}
2325-
}
2326-
2327-
PFOperationSet *changes = [self unsavedChanges];
2328-
for (NSString *key in changes.keyEnumerator) {
2329-
[changes removeObjectForKey:key];
2317+
@synchronized (self.lock) {
2318+
NSMutableSet *persistentKeys = [NSMutableSet setWithArray:[self._state.serverData allKeys]];
2319+
2320+
PFOperationSet *unsavedChanges = [self unsavedChanges];
2321+
for (PFOperationSet *operationSet in operationSetQueue) {
2322+
if (operationSet != unsavedChanges) {
2323+
[persistentKeys addObjectsFromArray:[operationSet.keyEnumerator allObjects]];
23302324
}
2331-
2332-
[self rebuildEstimatedData];
2333-
[_availableKeys minusSet:[NSSet setWithArray:removedKeys]];
2334-
[self checkpointAllMutableContainers];
23352325
}
2326+
2327+
[unsavedChanges removeAllObjects];
2328+
[_availableKeys intersectSet:persistentKeys];
2329+
2330+
[self rebuildEstimatedData];
2331+
[self checkpointAllMutableContainers];
23362332
}
23372333
}
23382334

23392335
- (void)revertObjectForKey:(NSString *)key {
2340-
@synchronized (lock) {
2336+
@synchronized (self.lock) {
23412337
if ([self isDirtyForKey:key]) {
23422338
[[self unsavedChanges] removeObjectForKey:key];
23432339
[self rebuildEstimatedData];

Tests/Unit/ObjectUnitTests.m

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,9 @@ - (void)testKeyValueCoding {
186186
- (void)testRevert {
187187
NSDate *date = [NSDate date];
188188
NSNumber *number = @0.75;
189-
PFObject *object = [PFObject _objectFromDictionary:@{ @"yarr" : date, @"score": number } defaultClassName:@"Test" completeData:YES];
189+
PFObject *object = [PFObject _objectFromDictionary:@{ @"yarr" : date,
190+
@"score": number }
191+
defaultClassName:@"Test" completeData:YES];
190192
object[@"yarr"] = @"yolo";
191193
[object revert];
192194
XCTAssertEqualObjects(object[@"yarr"], date);

0 commit comments

Comments
 (0)