aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--launcher/modplatform/modrinth/ModrinthInstanceCreationTask.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/launcher/modplatform/modrinth/ModrinthInstanceCreationTask.cpp b/launcher/modplatform/modrinth/ModrinthInstanceCreationTask.cpp
index f9709551..ddeea224 100644
--- a/launcher/modplatform/modrinth/ModrinthInstanceCreationTask.cpp
+++ b/launcher/modplatform/modrinth/ModrinthInstanceCreationTask.cpp
@@ -238,11 +238,12 @@ bool ModrinthCreationTask::createInstance()
if (!file.downloads.empty()) {
// FIXME: This really needs to be put into a ConcurrentTask of
// MultipleOptionsTask's , once those exist :)
- connect(dl.get(), &NetAction::failed, [this, &file, path, dl] {
- auto dl = Net::Download::makeFile(file.downloads.dequeue(), path);
- dl->addValidator(new Net::ChecksumValidator(file.hashAlgorithm, file.hash));
- m_files_job->addNetAction(dl);
- dl->succeeded();
+ auto param = dl.toWeakRef();
+ connect(dl.get(), &NetAction::failed, [this, &file, path, param] {
+ auto ndl = Net::Download::makeFile(file.downloads.dequeue(), path);
+ ndl->addValidator(new Net::ChecksumValidator(file.hashAlgorithm, file.hash));
+ m_files_job->addNetAction(ndl);
+ if (auto shared = param.lock()) shared->succeeded();
});
}
}