Skip to content

Commit 9bdbf8e

Browse files
committed
make addons use cache
1 parent ce81e59 commit 9bdbf8e

1 file changed

Lines changed: 14 additions & 8 deletions

File tree

‎lib/cppcheck.cpp‎

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1681,7 +1681,7 @@ void CppCheck::executeAddons(const std::vector<std::string>& files, const std::s
16811681
}
16821682
}
16831683

1684-
void CppCheck::executeAddonsWholeProgram(const std::list<FileWithDetails> &files, const std::list<FileSettings>& fileSettings, const std::string& ctuInfo)
1684+
void CppCheck::executeAddonsWholeProgram(const std::list<FileWithDetails>& /*files*/, const std::list<FileSettings>& /*fileSettings*/, const std::string& ctuInfo)
16851685
{
16861686
if (mSettings.addons.empty())
16871687
return;
@@ -1698,13 +1698,19 @@ void CppCheck::executeAddonsWholeProgram(const std::list<FileWithDetails> &files
16981698
}
16991699

17001700
std::vector<std::string> ctuInfoFiles;
1701-
for (const auto &f: files) {
1702-
const std::string &dumpFileName = getDumpFileName(mSettings, f);
1703-
ctuInfoFiles.push_back(getCtuInfoFileName(dumpFileName));
1704-
}
1705-
1706-
for (const auto &fs: fileSettings) {
1707-
const std::string &dumpFileName = getDumpFileName(mSettings, fs.file);
1701+
std::set<std::pair<std::string, std::size_t>> seen;
1702+
std::ifstream filesTxt(mSettings.buildDir + "/files.txt");
1703+
std::string line;
1704+
while (std::getline(filesTxt, line)) {
1705+
AnalyzerInformation::Info info;
1706+
if (!info.parse(line) || info.sourceFile.empty())
1707+
continue;
1708+
if (!seen.emplace(info.sourceFile, info.fsFileId).second)
1709+
continue;
1710+
std::string dumpFileName = AnalyzerInformation::getAnalyzerInfoFile(mSettings.buildDir, info.sourceFile, "", info.fsFileId);
1711+
if (info.fsFileId > 0)
1712+
dumpFileName += '.' + std::to_string(info.fsFileId);
1713+
dumpFileName += ".dump";
17081714
ctuInfoFiles.push_back(getCtuInfoFileName(dumpFileName));
17091715
}
17101716

0 commit comments

Comments
 (0)