From 9d9621a2d4086cdfc3f19c106fdc78924dc81577 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?C=C3=A9dric=20Traizet?= <cedric.traizet@c-s.fr>
Date: Mon, 24 Aug 2020 17:35:48 +0200
Subject: [PATCH] ENH: code review

---
 Modules/IO/IOGDAL/src/otbDEMHandler.cxx | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/Modules/IO/IOGDAL/src/otbDEMHandler.cxx b/Modules/IO/IOGDAL/src/otbDEMHandler.cxx
index d91621e226..991e454668 100644
--- a/Modules/IO/IOGDAL/src/otbDEMHandler.cxx
+++ b/Modules/IO/IOGDAL/src/otbDEMHandler.cxx
@@ -138,7 +138,11 @@ DEMHandler::DEMHandler() : m_Dataset(nullptr),
 
 DEMHandler::~DEMHandler()
 {
-  GDALClose(m_GeoidDS);
+  if (m_GeoidDS)
+  {
+    GDALClose(m_GeoidDS);
+  }
+
   ClearDEMs();
 }
 
@@ -180,16 +184,15 @@ void DEMHandler::OpenDEMDirectory(const std::string& DEMDirectory)
     }
     else
     {
-      auto vrtDatasetList = new GDALDatasetH[vrtSize];
+      std::vector<GDALDatasetH> vrtDatasetList(vrtSize);
       for (int i = 0; i < vrtSize; i++)
       {
         vrtDatasetList[i] = m_DatasetList[i]->GetDataSet();
       }
 
-      m_Dataset = (GDALDataset *) GDALBuildVRT(nullptr, vrtSize, vrtDatasetList, 
-                                                nullptr, nullptr, nullptr);
+      m_Dataset = static_cast<GDALDataset *> (GDALBuildVRT(nullptr, vrtSize, vrtDatasetList.data(), 
+                                                nullptr, nullptr, nullptr));
       m_DEMDirectories.push_back(DEMDirectory);
-      delete[] vrtDatasetList;
     }
     
   }
-- 
GitLab