[llvm-cov] Avoid copying file paths multiple times (NFC)
llvm-svn: 274027
This commit is contained in:
parent
ebe8401638
commit
cef440f7a7
|
@ -48,6 +48,9 @@ public:
|
|||
/// \brief Print the error message to the error output stream.
|
||||
void error(const Twine &Message, StringRef Whence = "");
|
||||
|
||||
/// \brief Append a reference to a private copy of \p Path into SourceFiles.
|
||||
void addCollectedPath(const std::string &Path);
|
||||
|
||||
/// \brief Return a memory buffer for the given source file.
|
||||
ErrorOr<const MemoryBuffer &> getSourceFile(StringRef SourceFile);
|
||||
|
||||
|
@ -81,12 +84,15 @@ public:
|
|||
CoverageViewOptions ViewOpts;
|
||||
std::string PGOFilename;
|
||||
CoverageFiltersMatchAll Filters;
|
||||
std::vector<std::string> SourceFiles;
|
||||
std::vector<StringRef> SourceFiles;
|
||||
std::vector<std::pair<std::string, std::unique_ptr<MemoryBuffer>>>
|
||||
LoadedSourceFiles;
|
||||
bool CompareFilenamesOnly;
|
||||
StringMap<std::string> RemappedFilenames;
|
||||
std::string CoverageArch;
|
||||
|
||||
private:
|
||||
std::vector<std::string> CollectedPaths;
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -97,6 +103,11 @@ void CodeCoverageTool::error(const Twine &Message, StringRef Whence) {
|
|||
errs() << Message << "\n";
|
||||
}
|
||||
|
||||
void CodeCoverageTool::addCollectedPath(const std::string &Path) {
|
||||
CollectedPaths.push_back(Path);
|
||||
SourceFiles.emplace_back(CollectedPaths.back());
|
||||
}
|
||||
|
||||
ErrorOr<const MemoryBuffer &>
|
||||
CodeCoverageTool::getSourceFile(StringRef SourceFile) {
|
||||
// If we've remapped filenames, look up the real location for this file.
|
||||
|
@ -356,7 +367,7 @@ int CodeCoverageTool::run(Command Cmd, int argc, const char **argv) {
|
|||
errs() << "error: " << File << ": " << EC.message();
|
||||
return 1;
|
||||
}
|
||||
SourceFiles.push_back(Path.str());
|
||||
addCollectedPath(Path.str());
|
||||
}
|
||||
return 0;
|
||||
};
|
||||
|
|
|
@ -171,7 +171,7 @@ void CoverageReport::render(const FunctionCoverageSummary &Function,
|
|||
OS << "\n";
|
||||
}
|
||||
|
||||
void CoverageReport::renderFunctionReports(ArrayRef<std::string> Files,
|
||||
void CoverageReport::renderFunctionReports(ArrayRef<StringRef> Files,
|
||||
raw_ostream &OS) {
|
||||
adjustColumnWidths(Coverage.get());
|
||||
bool isFirst = true;
|
||||
|
|
|
@ -32,7 +32,7 @@ public:
|
|||
std::unique_ptr<coverage::CoverageMapping> Coverage)
|
||||
: Options(Options), Coverage(std::move(Coverage)) {}
|
||||
|
||||
void renderFunctionReports(ArrayRef<std::string> Files, raw_ostream &OS);
|
||||
void renderFunctionReports(ArrayRef<StringRef> Files, raw_ostream &OS);
|
||||
|
||||
void renderFileReports(raw_ostream &OS);
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue