Fix crash in drafts saving.

Regression was introduced in 43559fb6b7.
This commit is contained in:
John Preston 2022-01-18 19:00:59 +03:00
parent bd4f993292
commit ecedce0c2f

View file

@ -2030,7 +2030,6 @@ void HistoryWidget::showHistory(
_membersDropdown.destroy(); _membersDropdown.destroy();
_scrollToAnimation.stop(); _scrollToAnimation.stop();
clearAllLoadRequests();
setHistory(nullptr); setHistory(nullptr);
_list = nullptr; _list = nullptr;
_peer = nullptr; _peer = nullptr;
@ -2241,10 +2240,6 @@ void HistoryWidget::setHistory(History *history) {
return; return;
} }
const auto wasHistory = base::take(_history);
const auto wasMigrated = base::take(_migrated);
// Unload lottie animations.
const auto unloadHeavyViewParts = [](History *history) { const auto unloadHeavyViewParts = [](History *history) {
if (history) { if (history) {
history->owner().unloadHeavyViewParts( history->owner().unloadHeavyViewParts(
@ -2252,13 +2247,19 @@ void HistoryWidget::setHistory(History *history) {
history->forceFullResize(); history->forceFullResize();
} }
}; };
unloadHeavyViewParts(wasHistory); if (_history) {
unloadHeavyViewParts(wasMigrated); unregisterDraftSources();
clearAllLoadRequests();
unregisterDraftSources(); const auto wasHistory = base::take(_history);
_history = history; const auto wasMigrated = base::take(_migrated);
_migrated = _history ? _history->migrateFrom() : nullptr; unloadHeavyViewParts(wasHistory);
registerDraftSource(); unloadHeavyViewParts(wasMigrated);
}
if (history) {
_history = history;
_migrated = _history ? _history->migrateFrom() : nullptr;
registerDraftSource();
}
} }
void HistoryWidget::unregisterDraftSources() { void HistoryWidget::unregisterDraftSources() {
@ -7412,6 +7413,7 @@ HistoryWidget::~HistoryWidget() {
session().api().saveDraftToCloudDelayed(_history); session().api().saveDraftToCloudDelayed(_history);
clearAllLoadRequests(); clearAllLoadRequests();
setHistory(nullptr);
unregisterDraftSources(); unregisterDraftSources();
} }
setTabbedPanel(nullptr); setTabbedPanel(nullptr);