diff options
author | Ryan Long <ryan.long@oarcorp.com> | 2021-12-20 12:24:40 -0500 |
---|---|---|
committer | Joel Sherrill <joel@rtems.org> | 2021-12-22 08:41:26 -0600 |
commit | 8167ad233947c3253e65da2e230594acbf461606 (patch) | |
tree | 2aadeb36832dfe64905f9ae3b137e8647978437d /tester/covoar/ReportsBase.cc | |
parent | TraceConverter.cc: Fix Uncaught exception issue (diff) | |
download | rtems-tools-8167ad233947c3253e65da2e230594acbf461606.tar.bz2 |
ReportsBase: Change raw pointer to unique_ptr
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
Diffstat (limited to 'tester/covoar/ReportsBase.cc')
-rw-r--r-- | tester/covoar/ReportsBase.cc | 77 |
1 files 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( |