@@ -383,29 +383,32 @@ + (BOOL)canBeSerializedAsValue:(id)value
383
383
// @param saved A set of objects that we can assume will have been saved.
384
384
// @param error The reason why it can't be serialized.
385
385
- (BOOL )canBeSerializedAfterSaving : (NSMutableArray *)saved withCurrentUser : (PFUser *)user error : (NSError **)error {
386
+ NSDictionary *dictionaryRepresentationCopy;
386
387
@synchronized (lock) {
387
- // This method is only used for batching sets of objects for saveAll
388
- // and when saving children automatically. Since it's only used to
389
- // determine whether or not save should be called on them, it only
390
- // needs to examine their current values, so we use estimatedData.
391
- if (![[self class ] canBeSerializedAsValue: _estimatedData.dictionaryRepresentation
392
- afterSaving: saved
393
- error: error]) {
394
- return NO ;
395
- }
388
+ dictionaryRepresentationCopy = [_estimatedData.dictionaryRepresentation copy ];
389
+ }
396
390
397
- if ([ self isDataAvailableForKey: @" ACL " ] &&
398
- [[ self ACLWithoutCopying ] hasUnresolvedUser ] &&
399
- ![saved containsObject: user]) {
400
- if (error) {
401
- *error = [PFErrorUtilities errorWithCode: kPFErrorInvalidACL
402
- message: @" User associated with ACL must be signed up. " ];
403
- }
404
- return NO ;
405
- }
391
+ // This method is only used for batching sets of objects for saveAll
392
+ // and when saving children automatically. Since it's only used to
393
+ // determine whether or not save should be called on them, it only
394
+ // needs to examine their current values, so we use estimatedData.
395
+ if (![[ self class ] canBeSerializedAsValue: dictionaryRepresentationCopy
396
+ afterSaving: saved
397
+ error: error]) {
398
+ return NO ;
399
+ }
406
400
407
- return YES ;
401
+ if ([self isDataAvailableForKey: @" ACL" ] &&
402
+ [[self ACLWithoutCopying ] hasUnresolvedUser ] &&
403
+ ![saved containsObject: user]) {
404
+ if (error) {
405
+ *error = [PFErrorUtilities errorWithCode: kPFErrorInvalidACL
406
+ message: @" User associated with ACL must be signed up." ];
407
+ }
408
+ return NO ;
408
409
}
410
+
411
+ return YES ;
409
412
}
410
413
411
414
// This saves all of the objects and files reachable from the given object.
0 commit comments