From 8b766dda8ecfb8ab9dbd0dc654a3fea41718c50b Mon Sep 17 00:00:00 2001 From: John Preston Date: Fri, 6 Sep 2019 12:20:12 +0300 Subject: [PATCH] Fix crash in scheduled message in admin log. Fixes #6495. --- .../history/admin_log/history_admin_log_inner.cpp | 2 +- Telegram/SourceFiles/history/history_item.cpp | 8 ++++++-- Telegram/SourceFiles/history/history_item.h | 1 + .../history/view/media/history_view_web_page.cpp | 2 +- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp b/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp index dfb077f7e..9cc7dfb59 100644 --- a/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp +++ b/Telegram/SourceFiles/history/admin_log/history_admin_log_inner.cpp @@ -263,7 +263,7 @@ InnerWidget::InnerWidget( subscribe(session().data().queryItemVisibility(), [=]( const Data::Session::ItemVisibilityQuery &query) { if (_history != query.item->history() - || query.item->isHistoryEntry() + || !query.item->isAdminLogEntry() || !isVisible()) { return; } diff --git a/Telegram/SourceFiles/history/history_item.cpp b/Telegram/SourceFiles/history/history_item.cpp index 22dc3712d..295b13e38 100644 --- a/Telegram/SourceFiles/history/history_item.cpp +++ b/Telegram/SourceFiles/history/history_item.cpp @@ -357,8 +357,7 @@ void HistoryItem::addLogEntryOriginal( WebPageId localId, const QString &label, const TextWithEntities &content) { - Expects(!isHistoryEntry()); - Expects(!isScheduled()); + Expects(isAdminLogEntry()); AddComponents(HistoryMessageLogEntryOriginal::Bit()); Get()->page = _history->owner().webpage( @@ -396,6 +395,10 @@ bool HistoryItem::isHistoryEntry() const { || (_clientFlags & MTPDmessage_ClientFlag::f_local_history_entry); } +bool HistoryItem::isAdminLogEntry() const { + return (_clientFlags & MTPDmessage_ClientFlag::f_admin_log_entry); +} + bool HistoryItem::isFromScheduled() const { return isHistoryEntry() && (_flags & MTPDmessage::Flag::f_from_scheduled); @@ -403,6 +406,7 @@ bool HistoryItem::isFromScheduled() const { bool HistoryItem::isScheduled() const { return !isHistoryEntry() + && !isAdminLogEntry() && (_flags & MTPDmessage::Flag::f_from_scheduled); } diff --git a/Telegram/SourceFiles/history/history_item.h b/Telegram/SourceFiles/history/history_item.h index bb31f99d5..7c2972f1c 100644 --- a/Telegram/SourceFiles/history/history_item.h +++ b/Telegram/SourceFiles/history/history_item.h @@ -86,6 +86,7 @@ public: [[nodiscard]] UserData *viaBot() const; [[nodiscard]] UserData *getMessageBot() const; [[nodiscard]] bool isHistoryEntry() const; + [[nodiscard]] bool isAdminLogEntry() const; [[nodiscard]] bool isFromScheduled() const; [[nodiscard]] bool isScheduled() const; diff --git a/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp b/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp index fb4b16ae9..b4c1fc713 100644 --- a/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp +++ b/Telegram/SourceFiles/history/view/media/history_view_web_page.cpp @@ -702,7 +702,7 @@ QMargins WebPage::inBubblePadding() const { } bool WebPage::isLogEntryOriginal() const { - return !_parent->data()->isHistoryEntry() && _parent->media() != this; + return _parent->data()->isAdminLogEntry() && _parent->media() != this; } int WebPage::bottomInfoPadding() const {