diff options
author | flow <flowlnlnln@gmail.com> | 2023-05-28 10:11:43 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-28 10:11:43 -0300 |
commit | ce2d58bb7d7e99da61b906253c0fea7815a82862 (patch) | |
tree | f958cd21fee8cba488e82229a1457db368079221 /launcher/modplatform/helpers/NetworkResourceAPI.cpp | |
parent | f24211e8b5d9af24ac3e27b0fdb50000a962c35f (diff) | |
parent | 7af116fb006e2eb62429740bd0abbe14f50ff244 (diff) | |
download | PrismLauncher-ce2d58bb7d7e99da61b906253c0fea7815a82862.tar.gz PrismLauncher-ce2d58bb7d7e99da61b906253c0fea7815a82862.tar.bz2 PrismLauncher-ce2d58bb7d7e99da61b906253c0fea7815a82862.zip |
Merge pull request #1083 from Ryex/fix/memory-leaks-develop
Diffstat (limited to 'launcher/modplatform/helpers/NetworkResourceAPI.cpp')
-rw-r--r-- | launcher/modplatform/helpers/NetworkResourceAPI.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/launcher/modplatform/helpers/NetworkResourceAPI.cpp b/launcher/modplatform/helpers/NetworkResourceAPI.cpp index 010ac15e..a3c592fd 100644 --- a/launcher/modplatform/helpers/NetworkResourceAPI.cpp +++ b/launcher/modplatform/helpers/NetworkResourceAPI.cpp @@ -24,7 +24,7 @@ Task::Ptr NetworkResourceAPI::searchProjects(SearchArgs&& args, SearchCallbacks& netJob->addNetAction(Net::Download::makeByteArray(QUrl(search_url), response)); - QObject::connect(netJob.get(), &NetJob::succeeded, [=]{ + QObject::connect(netJob.get(), &NetJob::succeeded, [this, response, callbacks]{ QJsonParseError parse_error{}; QJsonDocument doc = QJsonDocument::fromJson(*response, &parse_error); if (parse_error.error != QJsonParseError::NoError) { @@ -40,16 +40,20 @@ Task::Ptr NetworkResourceAPI::searchProjects(SearchArgs&& args, SearchCallbacks& callbacks.on_succeed(doc); }); - QObject::connect(netJob.get(), &NetJob::failed, [=](QString reason){ + QObject::connect(netJob.get(), &NetJob::failed, [&netJob, callbacks](QString reason){ int network_error_code = -1; if (auto* failed_action = netJob->getFailedActions().at(0); failed_action && failed_action->m_reply) network_error_code = failed_action->m_reply->attribute(QNetworkRequest::HttpStatusCodeAttribute).toInt(); callbacks.on_fail(reason, network_error_code); }); - QObject::connect(netJob.get(), &NetJob::aborted, [=]{ + QObject::connect(netJob.get(), &NetJob::aborted, [callbacks]{ callbacks.on_abort(); }); + QObject::connect(netJob.get(), &NetJob::finished, [response] { + delete response; + }); + return netJob; } @@ -88,7 +92,7 @@ Task::Ptr NetworkResourceAPI::getProjectVersions(VersionSearchArgs&& args, Versi netJob->addNetAction(Net::Download::makeByteArray(versions_url, response)); - QObject::connect(netJob.get(), &NetJob::succeeded, [=] { + QObject::connect(netJob.get(), &NetJob::succeeded, [response, callbacks, args] { QJsonParseError parse_error{}; QJsonDocument doc = QJsonDocument::fromJson(*response, &parse_error); if (parse_error.error != QJsonParseError::NoError) { |