aboutsummaryrefslogtreecommitdiff
path: root/launcher/translations
diff options
context:
space:
mode:
authorRachel Powers <508861+Ryex@users.noreply.github.com>2023-06-05 01:12:16 -0700
committerRachel Powers <508861+Ryex@users.noreply.github.com>2023-06-05 01:12:16 -0700
commit5824047ffa4e31f018ddc068c2677ce9b8e5b43d (patch)
treebb9bcd70ba1eacbedd52d8751eea9c144e0682de /launcher/translations
parent954d4d701a136e79c25b58f9680d26a555a6e6fe (diff)
downloadPrismLauncher-5824047ffa4e31f018ddc068c2677ce9b8e5b43d.tar.gz
PrismLauncher-5824047ffa4e31f018ddc068c2677ce9b8e5b43d.tar.bz2
PrismLauncher-5824047ffa4e31f018ddc068c2677ce9b8e5b43d.zip
fix(memory leak): cyclic refrence in translations model dl task
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
Diffstat (limited to 'launcher/translations')
-rw-r--r--launcher/translations/TranslationsModel.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/launcher/translations/TranslationsModel.cpp b/launcher/translations/TranslationsModel.cpp
index 46db4804..23e55c51 100644
--- a/launcher/translations/TranslationsModel.cpp
+++ b/launcher/translations/TranslationsModel.cpp
@@ -190,7 +190,7 @@ struct TranslationsModel::Private
std::unique_ptr<QTranslator> m_qt_translator;
std::unique_ptr<QTranslator> m_app_translator;
- Net::Download::Ptr m_index_task;
+ Net::Download* m_index_task;
QString m_downloadingTranslation;
NetJob::Ptr m_dl_job;
NetJob::Ptr m_index_job;
@@ -673,8 +673,9 @@ void TranslationsModel::downloadIndex()
d->m_index_job.reset(new NetJob("Translations Index", APPLICATION->network()));
MetaEntryPtr entry = APPLICATION->metacache()->resolveEntry("translations", "index_v2.json");
entry->setStale(true);
- d->m_index_task = Net::Download::makeCached(QUrl(BuildConfig.TRANSLATIONS_BASE_URL + "index_v2.json"), entry);
- d->m_index_job->addNetAction(d->m_index_task);
+ auto task = Net::Download::makeCached(QUrl(BuildConfig.TRANSLATIONS_BASE_URL + "index_v2.json"), entry);
+ d->m_index_task = task.get();
+ d->m_index_job->addNetAction(task);
connect(d->m_index_job.get(), &NetJob::failed, this, &TranslationsModel::indexFailed);
connect(d->m_index_job.get(), &NetJob::succeeded, this, &TranslationsModel::indexReceived);
d->m_index_job->start();