diff options
author | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2019-07-05 11:26:49 +0200 |
---|---|---|
committer | Nikolai Kosjar <nikolai.kosjar@qt.io> | 2019-07-09 14:21:38 +0000 |
commit | 5121c009f6163ff1f6d83e4416bb49e0abe7eaf8 (patch) | |
tree | 54b5413a2283728279bb66babd965b1d6eaf7947 /src/tools/clangbackend/source/clangcodemodelserver.h | |
parent | cc2b8923dc41b1f525829888fc90be08d43fbdff (diff) |
Clang: Fix use-after-free
...introduced with
commit d52ac9a7084df220a5349468703c11cc1c0794c4
Clang: Fix unresolved #includes for ui_*.h headers
ClangCodeModelServer::onJobFinished might take over ownership of the
jobs object. This should be reflected in the JobFinishedCallback as
otherwise we will continue in Jobs::onJobFinished() right into a use-
after-free.
Change-Id: I4b5cbdf781a8e66f45a743c451b4484bf922f720
Reviewed-by: Marco Bubke <marco.bubke@qt.io>
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Diffstat (limited to 'src/tools/clangbackend/source/clangcodemodelserver.h')
-rw-r--r-- | src/tools/clangbackend/source/clangcodemodelserver.h | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/tools/clangbackend/source/clangcodemodelserver.h b/src/tools/clangbackend/source/clangcodemodelserver.h index 14fefadcf2..471c27bd8d 100644 --- a/src/tools/clangbackend/source/clangcodemodelserver.h +++ b/src/tools/clangbackend/source/clangcodemodelserver.h @@ -83,13 +83,13 @@ private: void processTimerForVisibleButNotCurrentDocuments(); void processSuspendResumeJobs(const std::vector<Document> &documents); - void onJobFinished(const Jobs::RunningJob &jobRecord, IAsyncJob *job); + bool onJobFinished(const Jobs::RunningJob &jobRecord, IAsyncJob *job); void categorizeFileContainers(const QVector<FileContainer> &fileContainers, QVector<FileContainer> &toCreate, DocumentResetInfos &toReset) const; std::vector<Document> resetDocuments(const DocumentResetInfos &infos); - void resetDocumentsWithUnresolvedIncludes(const std::vector<Document> &documents); + int resetDocumentsWithUnresolvedIncludes(const std::vector<Document> &documents); void addAndRunUpdateJobs(std::vector<Document> documents); |