Clang: Soft assert creation of a job

Change-Id: I59af185fe2942eb4cd191692c56e6449610312e3
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Nikolai Kosjar
2016-09-15 12:34:15 +02:00
parent c8cec2dd0d
commit 6ede503aa3

View File

@@ -92,24 +92,25 @@ JobRequests Jobs::runJobs(const JobRequests &jobsRequests)
bool Jobs::runJob(const JobRequest &jobRequest) bool Jobs::runJob(const JobRequest &jobRequest)
{ {
if (IAsyncJob *asyncJob = IAsyncJob::create(jobRequest.type)) { IAsyncJob *asyncJob = IAsyncJob::create(jobRequest.type);
JobContext context(jobRequest, &m_documents, &m_unsavedFiles, &m_client); QTC_ASSERT(asyncJob, return false);
asyncJob->setContext(context);
if (const IAsyncJob::AsyncPrepareResult prepareResult = asyncJob->prepareAsyncRun()) { JobContext context(jobRequest, &m_documents, &m_unsavedFiles, &m_client);
qCDebug(jobsLog) << "Running" << jobRequest asyncJob->setContext(context);
<< "with TranslationUnit" << prepareResult.translationUnitId;
asyncJob->setFinishedHandler([this](IAsyncJob *asyncJob){ onJobFinished(asyncJob); }); if (const IAsyncJob::AsyncPrepareResult prepareResult = asyncJob->prepareAsyncRun()) {
const QFuture<void> future = asyncJob->runAsync(); qCDebug(jobsLog) << "Running" << jobRequest
<< "with TranslationUnit" << prepareResult.translationUnitId;
const RunningJob runningJob{jobRequest, prepareResult.translationUnitId, future}; asyncJob->setFinishedHandler([this](IAsyncJob *asyncJob){ onJobFinished(asyncJob); });
m_running.insert(asyncJob, runningJob); const QFuture<void> future = asyncJob->runAsync();
return true;
} else { const RunningJob runningJob{jobRequest, prepareResult.translationUnitId, future};
qCDebug(jobsLog) << "Preparation failed for " << jobRequest; m_running.insert(asyncJob, runningJob);
delete asyncJob; return true;
} } else {
qCDebug(jobsLog) << "Preparation failed for " << jobRequest;
delete asyncJob;
} }
return false; return false;