[PATCH v2] ReportsBase: Change raw pointer to unique_ptr
Ryan Long
ryan.long at oarcorp.com
Tue Dec 21 20:49:38 UTC 2021
Replaced raw pointer used with ReportsBase-derived classes to make code
cleaner and make it to where pointers do not have to be manually
deleted.
Closes #4376
---
tester/covoar/ReportsBase.cc | 77 +++++++++++++++++++++-----------------------
1 file changed, 36 insertions(+), 41 deletions(-)
diff --git a/tester/covoar/ReportsBase.cc b/tester/covoar/ReportsBase.cc
index 219e5af..0fb9ce0 100644
--- a/tester/covoar/ReportsBase.cc
+++ b/tester/covoar/ReportsBase.cc
@@ -591,80 +591,75 @@ void GenerateReports(
bool branchInfoAvailable
)
{
- typedef std::list<ReportsBase *> reportList_t;
+ using reportList_ptr = std::unique_ptr<ReportsBase>;
+ using reportList = std::vector<reportList_ptr>;
- reportList_t reportList;
- reportList_t::iterator ritr;
+ reportList reports;
std::string reportName;
- ReportsBase* reports;
time_t timestamp;
timestamp = time( NULL ); /* get current cal time */
- reports = new ReportsText(
- timestamp,
- symbolSetName,
- allExplanations,
- projectName,
- outputDirectory,
- symbolsToAnalyze,
- branchInfoAvailable
+ reports.emplace_back(
+ new ReportsText(
+ timestamp,
+ symbolSetName,
+ allExplanations,
+ projectName,
+ outputDirectory,
+ symbolsToAnalyze,
+ branchInfoAvailable
+ )
);
- reportList.push_back( reports );
- reports = new ReportsHtml(
- timestamp,
- symbolSetName,
- allExplanations,
- projectName,
- outputDirectory,
- symbolsToAnalyze,
- branchInfoAvailable
+ reports.emplace_back(
+ new ReportsHtml(
+ timestamp,
+ symbolSetName,
+ allExplanations,
+ projectName,
+ outputDirectory,
+ symbolsToAnalyze,
+ branchInfoAvailable
+ )
);
- reportList.push_back( reports );
- for ( ritr = reportList.begin(); ritr != reportList.end(); ritr++ ) {
- reports = *ritr;
+ for ( auto& report: reports ) {
- reportName = "index" + reports->ReportExtension();
+ reportName = "index" + report->ReportExtension();
if ( verbose ) {
std::cerr << "Generate " << reportName << std::endl;
}
- reports->WriteIndex( reportName );
+ report->WriteIndex( reportName );
- reportName = "annotated" + reports->ReportExtension();
+ reportName = "annotated" + report->ReportExtension();
if ( verbose ) {
std::cerr << "Generate " << reportName << std::endl;
}
- reports->WriteAnnotatedReport( reportName );
+ report->WriteAnnotatedReport( reportName );
- reportName = "branch" + reports->ReportExtension();
+ reportName = "branch" + report->ReportExtension();
if ( verbose ) {
std::cerr << "Generate " << reportName << std::endl;
}
- reports->WriteBranchReport( reportName );
+ report->WriteBranchReport( reportName );
- reportName = "uncovered" + reports->ReportExtension();
+ reportName = "uncovered" + report->ReportExtension();
if ( verbose ) {
std::cerr << "Generate " << reportName << std::endl;
}
- reports->WriteCoverageReport( reportName );
+ report->WriteCoverageReport( reportName );
- reportName = "sizes" + reports->ReportExtension();
+ reportName = "sizes" + report->ReportExtension();
if ( verbose ) {
std::cerr << "Generate " << reportName << std::endl;
}
- reports->WriteSizeReport( reportName );
+ report->WriteSizeReport( reportName );
- reportName = "symbolSummary" + reports->ReportExtension();
+ reportName = "symbolSummary" + report->ReportExtension();
if ( verbose ) {
std::cerr << "Generate " << reportName << std::endl;
}
- reports->WriteSymbolSummaryReport( reportName, symbolsToAnalyze );
- }
-
- for ( ritr = reportList.begin(); ritr != reportList.end(); ritr++ ) {
- reports = *ritr;
- delete reports;
+ report->WriteSymbolSummaryReport( reportName, symbolsToAnalyze );
}
ReportsBase::WriteSummaryReport(
--
1.8.3.1
More information about the devel
mailing list