Respond to CR.

pull/1/head
Matthew Chen 7 years ago
parent 7a898f5e99
commit 5530b8d701

@ -97,6 +97,7 @@ NS_ASSUME_NONNULL_BEGIN
NSMutableArray<NSString *> *interactionIds = [NSMutableArray new]; NSMutableArray<NSString *> *interactionIds = [NSMutableArray new];
YapDatabaseViewTransaction *interactionsByThread = [transaction ext:TSMessageDatabaseViewExtensionName]; YapDatabaseViewTransaction *interactionsByThread = [transaction ext:TSMessageDatabaseViewExtensionName];
OWSAssert(interactionsByThread); OWSAssert(interactionsByThread);
__block BOOL didDetectCorruption = NO;
[interactionsByThread enumerateKeysInGroup:self.uniqueId [interactionsByThread enumerateKeysInGroup:self.uniqueId
usingBlock:^(NSString *collection, NSString *key, NSUInteger index, BOOL *stop) { usingBlock:^(NSString *collection, NSString *key, NSUInteger index, BOOL *stop) {
if (![key isKindOfClass:[NSString class]] || key.length < 1) { if (![key isKindOfClass:[NSString class]] || key.length < 1) {
@ -104,11 +105,17 @@ NS_ASSUME_NONNULL_BEGIN
self.logTag, self.logTag,
key, key,
[key class]); [key class]);
didDetectCorruption = YES;
return; return;
} }
[interactionIds addObject:key]; [interactionIds addObject:key];
}]; }];
if (didDetectCorruption) {
DDLogWarn(@"%@ incrementing version of: %@", self.logTag, TSMessageDatabaseViewExtensionName);
[OWSPrimaryStorage incrementVersionOfDatabaseExtension:TSMessageDatabaseViewExtensionName];
}
for (NSString *interactionId in interactionIds) { for (NSString *interactionId in interactionIds) {
// We need to fetch each interaction, since [TSInteraction removeWithTransaction:] does important work. // We need to fetch each interaction, since [TSInteraction removeWithTransaction:] does important work.
TSInteraction *_Nullable interaction = TSInteraction *_Nullable interaction =

Loading…
Cancel
Save