OK Thanks Chris
On 22/12/21 7:49 am, Ryan Long wrote: > 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( _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel