From 5b72ecbff704109edb4addb3a8ba075f2de5d13f Mon Sep 17 00:00:00 2001 From: Alibek Omarov Date: Mon, 18 Jul 2022 08:13:38 +0300 Subject: [PATCH] CompilationDatabaseProjectManager: Fix cached state being unhandled In this code, database file is being hashed and if hash stays the same, parser quickly returns ParseResult::Cached. But as database never gets read, source tree isn't being built, thus dbContents() never gets called I moved ParseGuard::markAsSuccess() call to the finish() method of parser, so we tell ProjectExplorer that parsing finished successfully on Cached state Change-Id: I7ea28017e653ac6e2d7f50047c09a6eb7ecda13f Reviewed-by: Christian Kandeler --- .../compilationdatabaseprojectmanager/compilationdbparser.cpp | 3 +++ .../compilationdatabaseprojectmanager/compilationdbparser.h | 1 - 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp index b31125fbb33..21605c321c6 100644 --- a/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp +++ b/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp @@ -153,6 +153,9 @@ void CompilationDbParser::parserJobFinished() void CompilationDbParser::finish(ParseResult result) { + if (result != ParseResult::Failure) + m_guard.markAsSuccess(); + emit finished(result); deleteLater(); } diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.h b/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.h index 72425fa3c51..b5e97a8840c 100644 --- a/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.h +++ b/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.h @@ -69,7 +69,6 @@ public: QList scannedFiles() const; DbContents dbContents() const { - m_guard.markAsSuccess(); return m_dbContents; }