diff --git a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp index 72ad0e8e0..418ee1a4c 100644 --- a/Telegram/SourceFiles/history/view/history_view_list_widget.cpp +++ b/Telegram/SourceFiles/history/view/history_view_list_widget.cpp @@ -2402,11 +2402,17 @@ void ListWidget::refreshItem(not_null view) { const auto index = i - begin(_items); if (index < int(_items.size())) { const auto item = view->data(); - _views.erase(item); + const auto was = [&]() -> std::unique_ptr { + if (const auto i = _views.find(item); i != end(_views)) { + auto result = std::move(i->second); + _views.erase(i); + return std::move(result); + } + return nullptr; + }(); const auto [i, ok] = _views.emplace( item, item->createView(this)); - const auto was = view; const auto now = i->second.get(); _items[index] = now;