aboutsummaryrefslogtreecommitdiff
path: root/launcher/tasks/ConcurrentTask.cpp
diff options
context:
space:
mode:
authorRachel Powers <508861+Ryex@users.noreply.github.com>2023-05-21 01:46:28 -0700
committerRachel Powers <508861+Ryex@users.noreply.github.com>2023-05-21 01:46:28 -0700
commit1b3ff96ffd3a249d2b4b278a4afc2714038560d7 (patch)
tree583e4d9dc9ba48f4922648b9a4d017ee926fa81d /launcher/tasks/ConcurrentTask.cpp
parentd5c6a1b4d1e6d052e42366d19ffa0047168e030d (diff)
downloadPrismLauncher-1b3ff96ffd3a249d2b4b278a4afc2714038560d7.tar.gz
PrismLauncher-1b3ff96ffd3a249d2b4b278a4afc2714038560d7.tar.bz2
PrismLauncher-1b3ff96ffd3a249d2b4b278a4afc2714038560d7.zip
fix: memory leak with NetJob and responce not getting cleaned up
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
Diffstat (limited to 'launcher/tasks/ConcurrentTask.cpp')
-rw-r--r--launcher/tasks/ConcurrentTask.cpp27
1 files changed, 11 insertions, 16 deletions
diff --git a/launcher/tasks/ConcurrentTask.cpp b/launcher/tasks/ConcurrentTask.cpp
index fae2f3dc..5ee14505 100644
--- a/launcher/tasks/ConcurrentTask.cpp
+++ b/launcher/tasks/ConcurrentTask.cpp
@@ -138,7 +138,7 @@ void ConcurrentTask::startNext()
connect(next.get(), &Task::progress, this, [this, next](qint64 current, qint64 total) { subTaskProgress(next, current, total); });
m_doing.insert(next.get(), next);
- auto task_progress = std::make_shared<TaskStepProgress>(TaskStepProgress({ next->getUid() }));
+ auto task_progress = std::make_shared<TaskStepProgress>(next->getUid());
m_task_progress.insert(next->getUid(), task_progress);
updateState();
@@ -166,9 +166,9 @@ void ConcurrentTask::subTaskSucceeded(Task::Ptr task)
disconnect(task.get(), 0, this, 0);
- emit stepProgress(*task_progress.get());
+ emit stepProgress(*task_progress);
updateState();
- updateStepProgress(*task_progress.get(), Operation::REMOVED);
+ updateStepProgress(*task_progress, Operation::REMOVED);
startNext();
}
@@ -184,9 +184,9 @@ void ConcurrentTask::subTaskFailed(Task::Ptr task, const QString& msg)
disconnect(task.get(), 0, this, 0);
- emit stepProgress(*task_progress.get());
+ emit stepProgress(*task_progress);
updateState();
- updateStepProgress(*task_progress.get(), Operation::REMOVED);
+ updateStepProgress(*task_progress, Operation::REMOVED);
startNext();
}
@@ -196,7 +196,7 @@ void ConcurrentTask::subTaskStatus(Task::Ptr task, const QString& msg)
task_progress->status = msg;
task_progress->state = TaskStepState::Running;
- emit stepProgress(*task_progress.get());
+ emit stepProgress(*task_progress);
if (totalSize() == 1) {
setStatus(msg);
@@ -209,7 +209,7 @@ void ConcurrentTask::subTaskDetails(Task::Ptr task, const QString& msg)
task_progress->details = msg;
task_progress->state = TaskStepState::Running;
- emit stepProgress(*task_progress.get());
+ emit stepProgress(*task_progress);
if (totalSize() == 1) {
setDetails(msg);
@@ -220,15 +220,10 @@ void ConcurrentTask::subTaskProgress(Task::Ptr task, qint64 current, qint64 tota
{
auto task_progress = m_task_progress.value(task->getUid());
- task_progress->old_current = task_progress->current;
- task_progress->old_total = task_progress->old_total;
-
- task_progress->current = current;
- task_progress->total = total;
- task_progress->state = TaskStepState::Running;
-
- emit stepProgress(*task_progress.get());
- updateStepProgress(*task_progress.get(), Operation::CHANGED);
+ task_progress->update(current, total);
+
+ emit stepProgress(*task_progress);
+ updateStepProgress(*task_progress, Operation::CHANGED);
updateState();
if (totalSize() == 1) {