[PATCH rtems-tools v1] ReportsBase: Change raw pointer to unique_ptr

Ryan Long ryan.long at oarcorp.com
Mon Dec 20 20:24:55 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 | 21 ++++++---------------
 1 file changed, 6 insertions(+), 15 deletions(-)

diff --git a/tester/covoar/ReportsBase.cc b/tester/covoar/ReportsBase.cc
index 219e5af..8ec65c0 100644
--- a/tester/covoar/ReportsBase.cc
+++ b/tester/covoar/ReportsBase.cc
@@ -591,17 +591,16 @@ void GenerateReports(
   bool                            branchInfoAvailable
 )
 {
-  typedef std::list<ReportsBase *> reportList_t;
+  typedef std::vector<std::unique_ptr<ReportsBase>> reportList_t;
 
   reportList_t           reportList;
   reportList_t::iterator ritr;
   std::string            reportName;
-  ReportsBase*           reports;
   time_t                 timestamp;
 
 
   timestamp = time( NULL ); /* get current cal time */
-  reports = new ReportsText(
+  reportList.emplace_back(new ReportsText(
     timestamp,
     symbolSetName,
     allExplanations,
@@ -609,9 +608,8 @@ void GenerateReports(
     outputDirectory,
     symbolsToAnalyze,
     branchInfoAvailable
-  );
-  reportList.push_back( reports );
-  reports = new ReportsHtml(
+  ));
+  reportList.emplace_back(new ReportsHtml(
     timestamp,
     symbolSetName,
     allExplanations,
@@ -619,11 +617,9 @@ void GenerateReports(
     outputDirectory,
     symbolsToAnalyze,
     branchInfoAvailable
-  );
-  reportList.push_back( reports );
+  ));
 
-  for ( ritr = reportList.begin(); ritr != reportList.end(); ritr++ ) {
-    reports = *ritr;
+  for ( auto& reports: reportList ) {
 
     reportName = "index" + reports->ReportExtension();
     if ( verbose ) {
@@ -662,11 +658,6 @@ void GenerateReports(
     reports->WriteSymbolSummaryReport( reportName, symbolsToAnalyze );
   }
 
-  for ( ritr = reportList.begin(); ritr != reportList.end(); ritr++ ) {
-    reports = *ritr;
-    delete reports;
-  }
-
   ReportsBase::WriteSummaryReport(
     "summary.txt",
     symbolSetName,
-- 
1.8.3.1



More information about the devel mailing list