From 2c0ba1cbd94b905277eed7395a2831bce3e677cf Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Fri, 1 Jun 2018 10:22:39 -0400 Subject: [PATCH 1/2] Skip missing and invalid interactions in conversation view. --- .../ConversationView/ConversationViewController.m | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index e0f40e96e..c44655873 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -4719,7 +4719,18 @@ typedef enum : NSUInteger { for (NSUInteger row = 0; row < count; row++) { TSInteraction *interaction = [viewTransaction objectAtRow:row inSection:0 withMappings:self.messageMappings]; - OWSAssert(interaction); + if (!interaction) { + OWSFail(@"%@ missing interaction in message mappings: %zd / %zd.", self.logTag, row, count); + continue; + } + if (!interaction.uniqueId) { + OWSFail(@"%@ invalid interaction in message mappings: %zd / %zd: %@.", + self.logTag, + row, + count, + interaction.description); + continue; + } ConversationViewItem *_Nullable viewItem = self.viewItemCache[interaction.uniqueId]; if (viewItem) { From 833f6ad51db3949c5f555d1fd10b8a66ecf4b979 Mon Sep 17 00:00:00 2001 From: Matthew Chen Date: Fri, 1 Jun 2018 10:23:01 -0400 Subject: [PATCH 2/2] Skip missing and invalid interactions in conversation view. --- .../ConversationView/ConversationViewController.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m index c44655873..982756545 100644 --- a/Signal/src/ViewControllers/ConversationView/ConversationViewController.m +++ b/Signal/src/ViewControllers/ConversationView/ConversationViewController.m @@ -4721,6 +4721,7 @@ typedef enum : NSUInteger { [viewTransaction objectAtRow:row inSection:0 withMappings:self.messageMappings]; if (!interaction) { OWSFail(@"%@ missing interaction in message mappings: %zd / %zd.", self.logTag, row, count); + // TODO: Add analytics. continue; } if (!interaction.uniqueId) { @@ -4729,6 +4730,7 @@ typedef enum : NSUInteger { row, count, interaction.description); + // TODO: Add analytics. continue; }