From ec5d8b73736f7700339f0aeda5a7ce7631858818 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 14 May 2024 13:07:37 +0400 Subject: [PATCH] More robust effect icon loading. --- .../SourceFiles/data/data_message_reactions.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Telegram/SourceFiles/data/data_message_reactions.cpp b/Telegram/SourceFiles/data/data_message_reactions.cpp index 78baff83e..7a834dcc1 100644 --- a/Telegram/SourceFiles/data/data_message_reactions.cpp +++ b/Telegram/SourceFiles/data/data_message_reactions.cpp @@ -584,15 +584,14 @@ void Reactions::preloadImageFor(const ReactionId &id) { } auto &set = _images.emplace(id).first->second; set.effect = (id.custom() != 0); - const auto i = set.effect - ? ranges::find(_effects, id, &Reaction::id) - : ranges::find(_available, id, &Reaction::id); - const auto document = (i == end(set.effect ? _effects : _available)) + auto &list = set.effect ? _effects : _available; + const auto i = ranges::find(list, id, &Reaction::id); + const auto document = (i == end(list)) ? nullptr : i->centerIcon ? i->centerIcon : i->selectAnimation.get(); - if (document || (set.effect && i != end(_effects))) { + if (document || (set.effect && i != end(list))) { if (!set.effect || i->centerIcon) { loadImage(set, document, !i->centerIcon); } else { @@ -656,11 +655,13 @@ QImage Reactions::resolveEffectImageFor(EffectId id) { } QImage Reactions::resolveImageFor(const ReactionId &id) { - const auto i = _images.find(id); + auto i = _images.find(id); if (i == end(_images)) { preloadImageFor(id); + i = _images.find(id); + Assert(i != end(_images)); } - auto &set = (i != end(_images)) ? i->second : _images[id]; + auto &set = i->second; set.effect = (id.custom() != 0); const auto resolve = [&](QImage &image, int size) {