Fixed leak of usernames cache request on failed load.

This commit is contained in:
23rd
2026-09-13 07:23:33 +03:00
parent d54eac4c6c
commit 82eff3440e

View File

@@ -83,6 +83,8 @@ rpl::producer<Data::Usernames> Usernames::loadUsernames(
consumer.put_next({});
consumer.put_done();
});
}).fail([=] {
consumer.put_done();
}).send();
};
const auto requestChannel = [&](const MTPInputChannel &data) {
@@ -103,6 +105,8 @@ rpl::producer<Data::Usernames> Usernames::loadUsernames(
consumer.put_done();
});
});
}).fail([=] {
consumer.put_done();
}).send();
};
if (peer->isSelf()) {
@@ -261,9 +265,11 @@ void Usernames::requestToCache(not_null<PeerData*> peer) {
const auto lifetime = std::make_shared<rpl::lifetime>();
*lifetime = loadUsernames(
peer
) | rpl::on_next([=, id = peer->id](Data::Usernames usernames) {
) | rpl::on_next_done([=, id = peer->id](Data::Usernames usernames) {
_tinyCache = std::make_pair(id, std::move(usernames));
lifetime->destroy();
}, [=] {
lifetime->destroy();
});
}