From 953e2407edb956eb846a79fc0dce08d032ea0d66 Mon Sep 17 00:00:00 2001 From: Justin Bogner Date: Sat, 20 Sep 2014 15:31:56 +0000 Subject: llvm-cov: Disentangle the coverage data logic from the display (NFC) This splits the logic for actually looking up coverage information from the logic that displays it. These were tangled rather thoroughly so this change is a bit large, but it mostly consists of moving things around. The coverage lookup logic itself now lives in the library, rather than being spread between the library and the tool. llvm-svn: 218184 --- llvm/tools/llvm-cov/SourceCoverageView.cpp | 22 ++++++++++------------ 1 file changed, 10 insertions(+), 12 deletions(-) (limited to 'llvm/tools/llvm-cov/SourceCoverageView.cpp') diff --git a/llvm/tools/llvm-cov/SourceCoverageView.cpp b/llvm/tools/llvm-cov/SourceCoverageView.cpp index 3be54f828da..015099c7d02 100644 --- a/llvm/tools/llvm-cov/SourceCoverageView.cpp +++ b/llvm/tools/llvm-cov/SourceCoverageView.cpp @@ -18,11 +18,11 @@ using namespace llvm; -void SourceCoverageView::renderLine(raw_ostream &OS, StringRef Line, - int64_t LineNumber, - const CoverageSegment *WrappedSegment, - ArrayRef Segments, - unsigned ExpansionCol) { +void SourceCoverageView::renderLine( + raw_ostream &OS, StringRef Line, int64_t LineNumber, + const coverage::CoverageSegment *WrappedSegment, + ArrayRef Segments, + unsigned ExpansionCol) { Optional Highlight; SmallVector, 2> HighlightedRanges; @@ -110,7 +110,7 @@ void SourceCoverageView::renderLineNumberColumn(raw_ostream &OS, } void SourceCoverageView::renderRegionMarkers( - raw_ostream &OS, ArrayRef Segments) { + raw_ostream &OS, ArrayRef Segments) { SmallString<32> Buffer; raw_svector_ostream BufferOS(Buffer); @@ -158,14 +158,12 @@ void SourceCoverageView::render(raw_ostream &OS, bool WholeFile, auto EndISV = InstantiationSubViews.end(); // Get the coverage information for the file. - auto CoverageSegments = RegionManager->getCoverageSegments(); - assert(CoverageSegments.size() && "View with no coverage?"); - auto NextSegment = CoverageSegments.begin(); - auto EndSegment = CoverageSegments.end(); + auto NextSegment = CoverageInfo.begin(); + auto EndSegment = CoverageInfo.end(); unsigned FirstLine = NextSegment != EndSegment ? NextSegment->Line : 0; - const CoverageSegment *WrappedSegment = nullptr; - SmallVector LineSegments; + const coverage::CoverageSegment *WrappedSegment = nullptr; + SmallVector LineSegments; for (line_iterator LI(File, /*SkipBlanks=*/false); !LI.is_at_eof(); ++LI) { // If we aren't rendering the whole file, we need to filter out the prologue // and epilogue. -- cgit v1.2.3