CleanupPollsJob: Fix possible leak

Missing deleteLater when the CleanupPollsJob aborts.
This is only a problem if the SyncEngine is kept alive a long time. Which is
usually not the case in the configuration where poll jobs are used.

(cherry picked from commit 3465024898)
This commit is contained in:
Olivier Goffart 2016-07-14 09:21:28 +02:00 committed by Christian Kamm
parent 4abaee7736
commit 65c49e1de6
2 changed files with 6 additions and 0 deletions

View File

@ -762,6 +762,7 @@ void CleanupPollsJob::slotPollFinished()
Q_ASSERT(job);
if (job->_item->_status == SyncFileItem::FatalError) {
emit aborted(job->_item->_errorString);
deleteLater();
return;
} else if (job->_item->_status != SyncFileItem::Success) {
qDebug() << "There was an error with file " << job->_item->_file << job->_item->_errorString;
@ -771,6 +772,7 @@ void CleanupPollsJob::slotPollFinished()
job->_item->_status = SyncFileItem::FatalError;
job->_item->_errorString = tr("Error writing metadata to the database");
emit aborted(job->_item->_errorString);
deleteLater();
return;
}
}

View File

@ -410,6 +410,10 @@ public:
~CleanupPollsJob();
/**
* Start the job. After the job is completed, it will emit either finished or aborted, and it
* will destroy itself.
*/
void start();
signals:
void finished();