From 4eefebc96c0654df0b05bb037e43d78c8013a288 Mon Sep 17 00:00:00 2001 From: John Preston Date: Sun, 23 Apr 2023 18:41:14 +0400 Subject: [PATCH] Fix possible assertion violation in non-self reaction. --- .../SourceFiles/data/data_message_reactions.cpp | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/Telegram/SourceFiles/data/data_message_reactions.cpp b/Telegram/SourceFiles/data/data_message_reactions.cpp index a918aa08c1..d13d7a9bf6 100644 --- a/Telegram/SourceFiles/data/data_message_reactions.cpp +++ b/Telegram/SourceFiles/data/data_message_reactions.cpp @@ -966,13 +966,16 @@ void MessageReactions::add(const ReactionId &id, bool addToRecent) { const auto removed = !--one.count; const auto j = _recent.find(one.id); if (j != end(_recent)) { - j->second.erase( - ranges::remove(j->second, self, &RecentReaction::peer), - end(j->second)); - if (j->second.empty()) { + if (removed) { + j->second.clear(); _recent.erase(j); } else { - Assert(!removed); + j->second.erase( + ranges::remove(j->second, self, &RecentReaction::peer), + end(j->second)); + if (j->second.empty()) { + _recent.erase(j); + } } } return removed;