Preserve ordering in incremental diffs.

pull/1/head
Matthew Chen 7 years ago
parent 5d6ff608c1
commit aa5e6b456e

@ -654,13 +654,12 @@ static const int kYapDatabaseRangeMinLength = 0;
NSSet<NSString *> *newItemIdSet = [NSSet setWithArray:newItemIdList]; NSSet<NSString *> *newItemIdSet = [NSSet setWithArray:newItemIdList];
// We use sets and dictionaries here to ensure perf. // We use sets and dictionaries here to ensure perf.
NSMutableSet<NSString *> *deletedItemIdSet = [oldItemIdSet mutableCopy]; NSMutableOrderedSet<NSString *> *deletedItemIdSet = [NSMutableOrderedSet orderedSetWithArray:oldItemIdList];
[deletedItemIdSet minusSet:newItemIdSet]; [deletedItemIdSet minusSet:newItemIdSet];
NSMutableSet<NSString *> *insertedItemIdSet = [newItemIdSet mutableCopy]; NSMutableOrderedSet<NSString *> *insertedItemIdSet = [NSMutableOrderedSet orderedSetWithArray:newItemIdList];
[insertedItemIdSet minusSet:oldItemIdSet]; [insertedItemIdSet minusSet:oldItemIdSet];
NSArray<NSString *> *deletedItemIdList = [deletedItemIdSet.allObjects sortedArrayUsingSelector:@selector(compare:)]; NSArray<NSString *> *deletedItemIdList = [deletedItemIdSet.array copy];
NSArray<NSString *> *insertedItemIdList = NSArray<NSString *> *insertedItemIdList = [insertedItemIdSet.array copy];
[insertedItemIdSet.allObjects sortedArrayUsingSelector:@selector(compare:)];
// Try to generate a series of "update items" that safely transform // Try to generate a series of "update items" that safely transform
// the "old item list" into the "new item list". // the "old item list" into the "new item list".

Loading…
Cancel
Save