]> Creatis software - gdcm.git/blobdiff - src/gdcmDict.cxx
ENH: Some cosmetic cleanup of gdcmFile, main changes are: lgrTotal -> ImageDataSize...
[gdcm.git] / src / gdcmDict.cxx
index fd3e990c26905caa7c4f9895ae717e90d74ffc8e..b8ed20ab925be239a2c7979da54127a02cdb0678 100644 (file)
@@ -1,5 +1,21 @@
-// gdcmDict.cxx
-//-----------------------------------------------------------------------------
+/*=========================================================================
+                                                                                
+  Program:   gdcm
+  Module:    $RCSfile: gdcmDict.cxx,v $
+  Language:  C++
+  Date:      $Date: 2004/06/22 13:47:33 $
+  Version:   $Revision: 1.37 $
+                                                                                
+  Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
+  l'Image). All rights reserved. See Doc/License.txt or
+  http://www.creatis.insa-lyon.fr/Public/Gdcm/License.htm for details.
+                                                                                
+     This software is distributed WITHOUT ANY WARRANTY; without even
+     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+     PURPOSE.  See the above copyright notices for more information.
+                                                                                
+=========================================================================*/
+
 #include "gdcmDict.h"
 #include "gdcmUtil.h"
 #include "gdcmDebug.h"
@@ -8,13 +24,6 @@
 #include <iostream>
 #include <iomanip>
 
-#ifdef GDCM_NO_ANSI_STRING_STREAM
-#  include <strstream>
-#  define  ostringstream ostrstream
-# else
-#  include <sstream>
-#endif
-
 //-----------------------------------------------------------------------------
 // Constructor / Destructor
 /**
@@ -23,7 +32,7 @@
  */
 gdcmDict::gdcmDict(std::string & FileName) {
    guint16 group, element;
-   char buff[1024];
+   //char buff[1024];
    TagName vr;
    TagName fourth;
    TagName name;
@@ -33,15 +42,13 @@ gdcmDict::gdcmDict(std::string & FileName) {
                     FileName.c_str());
 
    while (!from.eof()) {
-      from >> std::hex >> group >> element;
-      eatwhite(from);
-      from.getline(buff, 256, ' ');
-      vr = buff;
-      eatwhite(from);
-      from.getline(buff, 256, ' ');
-      fourth = buff;
-      from.getline(buff, 256, '\n');
-      name = buff;
+      from >> std::hex;
+      from >> group;          /// MEMORY LEAK in std::istream::operator>>
+      from >> element;
+      from >> vr;
+      from >> fourth;
+               eatwhite(from);
+      getline(from, name);    /// MEMORY LEAK in std::getline<>
 
       gdcmDictEntry * newEntry = new gdcmDictEntry(group, element,
                                                    vr, fourth, name);
@@ -142,7 +149,8 @@ bool gdcmDict::AddNewEntry(gdcmDictEntry *NewEntry)
    else 
    {
       KeyHt[NewEntry->GetKey()] = NewEntry;
-      NameHt[NewEntry->GetName()] = NewEntry;
+      NameHt[NewEntry->GetName()] = NewEntry;  /// MEMORY LEAK in
+                                               /// std::map<>::operator[]
       return(true);
    }
 }