]> Creatis software - gdcm.git/blobdiff - src/gdcmDicomDirStudy.cxx
BUG: Remove mem leak.
[gdcm.git] / src / gdcmDicomDirStudy.cxx
index b2ef75232fb7aeb66e340c5edf1ab671a6697fd8..4075c91484ec1103b46cc5ebd6f5bda76155d718 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDicomDirStudy.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/01/23 10:12:33 $
-  Version:   $Revision: 1.30 $
+  Date:      $Date: 2005/01/28 17:01:29 $
+  Version:   $Revision: 1.33 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -28,6 +28,7 @@ namespace gdcm
 // Constructor / Destructor
 /**
  * \brief  Constructor 
+ * \note End user must use : DicomDirPatient::NewStudy()
  */
 DicomDirStudy::DicomDirStudy(bool empty):
    DicomDirObject()
@@ -45,12 +46,7 @@ DicomDirStudy::DicomDirStudy(bool empty):
  */
 DicomDirStudy::~DicomDirStudy() 
 {
-   for(ListDicomDirSerie::iterator cc = Series.begin();
-                                   cc != Series.end();
-                                 ++cc )
-   {
-      delete *cc;
-   }
+   ClearSerie();
 }
 
 //-----------------------------------------------------------------------------
@@ -106,6 +102,20 @@ DicomDirSerie *DicomDirStudy::NewSerie()
    return st;
 } 
 
+/**
+ * \brief  Remove all series in the study 
+ */
+void DicomDirStudy::ClearSerie()
+{
+   for(ListDicomDirSerie::iterator cc = Series.begin();
+                                   cc != Series.end();
+                                 ++cc )
+   {
+      delete *cc;
+   }
+   Series.clear();
+}
+
 /**
  * \brief   Get the first entry while visiting the DicomDirSeries
  * \return  The first DicomDirSerie if found, otherwhise NULL
@@ -126,11 +136,10 @@ DicomDirSerie *DicomDirStudy::GetFirstSerie()
 DicomDirSerie *DicomDirStudy::GetNextSerie()
 {
    gdcmAssertMacro (ItSerie != Series.end());
-   {
-      ++ItSerie;
-      if (ItSerie != Series.end())
-         return *ItSerie;
-   }
+
+   ++ItSerie;
+   if (ItSerie != Series.end())
+      return *ItSerie;
    return NULL;
 }