mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-14 13:17:08 +02:00
Fix crash on quit in sponsored messages.
This commit is contained in:
parent
17b7db6219
commit
3da51b1bc9
3 changed files with 16 additions and 3 deletions
|
@ -37,9 +37,20 @@ SponsoredMessages::SponsoredMessages(not_null<Main::Session*> session)
|
|||
}
|
||||
|
||||
SponsoredMessages::~SponsoredMessages() {
|
||||
for (const auto &request : _requests) {
|
||||
Expects(_data.empty());
|
||||
Expects(_requests.empty());
|
||||
Expects(_viewRequests.empty());
|
||||
}
|
||||
|
||||
void SponsoredMessages::clear() {
|
||||
_lifetime.destroy();
|
||||
for (const auto &request : base::take(_requests)) {
|
||||
_session->api().request(request.second.requestId).cancel();
|
||||
}
|
||||
for (const auto &request : base::take(_viewRequests)) {
|
||||
_session->api().request(request.second.requestId).cancel();
|
||||
}
|
||||
base::take(_data);
|
||||
}
|
||||
|
||||
void SponsoredMessages::clearOldRequests() {
|
||||
|
|
|
@ -80,8 +80,6 @@ public:
|
|||
};
|
||||
using RandomId = QByteArray;
|
||||
explicit SponsoredMessages(not_null<Main::Session*> session);
|
||||
SponsoredMessages(const SponsoredMessages &other) = delete;
|
||||
SponsoredMessages &operator=(const SponsoredMessages &other) = delete;
|
||||
~SponsoredMessages();
|
||||
|
||||
[[nodiscard]] bool canHaveFor(not_null<History*> history) const;
|
||||
|
@ -104,6 +102,8 @@ public:
|
|||
[[nodiscard]] auto createReportCallback(const FullMsgId &fullId)
|
||||
-> Fn<void(SponsoredReportResult::Id, Fn<void(SponsoredReportResult)>)>;
|
||||
|
||||
void clear();
|
||||
|
||||
private:
|
||||
using OwnedItem = std::unique_ptr<HistoryItem, HistoryItem::Destroyer>;
|
||||
struct Entry {
|
||||
|
|
|
@ -41,6 +41,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
|||
#include "data/business/data_business_info.h"
|
||||
#include "data/business/data_shortcut_messages.h"
|
||||
#include "data/components/scheduled_messages.h"
|
||||
#include "data/components/sponsored_messages.h"
|
||||
#include "data/stickers/data_stickers.h"
|
||||
#include "data/notify/data_notify_settings.h"
|
||||
#include "data/data_bot_app.h"
|
||||
|
@ -396,6 +397,7 @@ void Session::clear() {
|
|||
_histories->unloadAll();
|
||||
_shortcutMessages = nullptr;
|
||||
_session->scheduledMessages().clear();
|
||||
_session->sponsoredMessages().clear();
|
||||
_dependentMessages.clear();
|
||||
base::take(_messages);
|
||||
base::take(_nonChannelMessages);
|
||||
|
|
Loading…
Add table
Reference in a new issue