From 3b911f19f68334597bdb8c9586df2278c1a3f4e5 Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 26 Oct 2018 09:35:57 +0400 Subject: [PATCH] Fix collage/slideshow extracting in GCC. It was depending on argument evaluation order before that fix. --- Telegram/SourceFiles/data/data_web_page.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Telegram/SourceFiles/data/data_web_page.cpp b/Telegram/SourceFiles/data/data_web_page.cpp index 2ecbdfc515..bffceffcfa 100644 --- a/Telegram/SourceFiles/data/data_web_page.cpp +++ b/Telegram/SourceFiles/data/data_web_page.cpp @@ -89,6 +89,14 @@ WebPageCollage ExtractCollage(const MTPDwebPage &data) { if (!data.has_cached_page()) { return {}; } + const auto parseMedia = [&] { + if (data.has_photo()) { + Auth().data().photo(data.vphoto); + } + if (data.has_document()) { + Auth().data().document(data.vdocument); + } + }; return data.vcached_page.match([&](const auto &page) { for (const auto &block : page.vblocks.v) { switch (block.type()) { @@ -100,11 +108,13 @@ WebPageCollage ExtractCollage(const MTPDwebPage &data) { case mtpc_pageBlockAudio: return WebPageCollage(); case mtpc_pageBlockSlideshow: + parseMedia(); return ExtractCollage( block.c_pageBlockSlideshow().vitems.v, page.vphotos.v, page.vdocuments.v); case mtpc_pageBlockCollage: + parseMedia(); return ExtractCollage( block.c_pageBlockCollage().vitems.v, page.vphotos.v,