Fixed leak of premium preview preloads after show expiry.

This commit is contained in:
23rd
2026-09-13 07:23:33 +03:00
parent 3507534767
commit e957235cac

View File

@@ -1326,6 +1326,15 @@ void Show(
}
}
void RemoveExpiredPreloads() {
auto &list = Preloads();
list.erase(
ranges::remove_if(list, [](const Preload &preload) {
return preload.show.expired();
}),
end(list));
}
void Show(std::shared_ptr<ChatHelpers::Show> show, QImage back) {
auto &list = Preloads();
for (auto i = begin(list); i != end(list);) {
@@ -1479,6 +1488,8 @@ void Show(
crl::on_main([=] {
if (auto strong = weak.lock()) {
Show(std::move(strong), result);
} else {
RemoveExpiredPreloads();
}
});
});