From 0e1f59a0ed4a75b1d3098898a035107379c99789 Mon Sep 17 00:00:00 2001 From: John Preston Date: Mon, 17 Aug 2020 10:59:19 +0400 Subject: [PATCH] Fix crash in editing a deleted message. Regression was introduced in b02b690747. --- .../SourceFiles/history/history_widget.cpp | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/Telegram/SourceFiles/history/history_widget.cpp b/Telegram/SourceFiles/history/history_widget.cpp index fb1463234..bce922442 100644 --- a/Telegram/SourceFiles/history/history_widget.cpp +++ b/Telegram/SourceFiles/history/history_widget.cpp @@ -2994,8 +2994,17 @@ void HistoryWidget::showNextUnreadMention() { } void HistoryWidget::saveEditMsg() { - if (_saveEditMsgRequestId) return; + Expects(_history != nullptr); + if (_saveEditMsgRequestId) { + return; + } + + const auto item = session().data().message(_channel, _editMsgId); + if (!item) { + cancelEdit(); + return; + } const auto webPageId = _previewCancelled ? CancelledWebPageId : ((_previewData && _previewData->pendingTill >= 0) @@ -3012,15 +3021,9 @@ void HistoryWidget::saveEditMsg() { TextUtilities::ConvertTextTagsToEntities(textWithTags.tags) }; TextUtilities::PrepareForSending(left, prepareFlags); - const auto item = session().data().message(_channel, _editMsgId); if (!TextUtilities::CutPart(sending, left, MaxMessageSize)) { - if (item) { - const auto suggestModerateActions = false; - Ui::show(Box(item, suggestModerateActions)); - } else { - _field->selectAll(); - _field->setFocus(); - } + const auto suggestModerateActions = false; + Ui::show(Box(item, suggestModerateActions)); return; } else if (!left.text.isEmpty()) { Ui::show(Box(tr::lng_edit_too_long(tr::now))); @@ -5750,7 +5753,9 @@ int HistoryWidget::countMembersDropdownHeightMax() const { } void HistoryWidget::cancelEdit() { - if (!_editMsgId) return; + if (!_editMsgId) { + return; + } _replyEditMsg = nullptr; _editMsgId = 0;