]> Creatis software - gdcm.git/blobdiff - src/gdcmDocument.cxx
COMP: Need to export those symbols too
[gdcm.git] / src / gdcmDocument.cxx
index 4a82467dc7b63a8d593423cf383a59db1c249745..665604a2996f5f997ac008d2cfdf8e8b4db89cca 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDocument.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/10/20 15:24:09 $
-  Version:   $Revision: 1.301 $
+  Date:      $Date: 2005/10/24 16:00:47 $
+  Version:   $Revision: 1.304 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -660,7 +660,7 @@ void Document::LoadEntryBinArea(uint16_t group, uint16_t elem)
 /**
  * \brief Loads (from disk) the element content 
  *        when a string is not suitable
- * @param elem  Entry whose binArea is going to be loaded
+ * @param entry  Entry whose binArea is going to be loaded
  */
 void Document::LoadEntryBinArea(DataEntry *entry) 
 {
@@ -684,7 +684,7 @@ void Document::LoadEntryBinArea(DataEntry *entry)
       return;
    }
 
-   // Read the datas
+   // Read the data
    Fp->read((char*)data, l);
    if ( Fp->fail() || Fp->eof() )
    {
@@ -718,7 +718,7 @@ void Document::LoadEntryBinArea(DataEntry *entry)
       }
       case 8:
       {
-         gdcmWarningMacro("Can't swap 64 bits datas");
+         gdcmWarningMacro("Can't swap 64 bits data");
 /*         uint64_t *data64 = (uint64_t *)data;
          for(i=0;i<l/vrLgth;i++)
             data64[i] = SwapLongLong(data64[i]);*/
@@ -903,7 +903,7 @@ int Document::ComputeGroup0002Length( )
             // (no SQ, OW, UT in group 0x0002;)
                if ( vr == "OB" ) 
                {
-                  // explicit VR AND OB, OW, SQ, UT : 4 more bytes
+                  // explicit VR AND (OB, OW, SQ, UT) : 4 more bytes
                   groupLength +=  4;
                }
             //}
@@ -998,16 +998,22 @@ void Document::ParseDES(DocEntrySet *set, long offset,
       if ( newDataEntry )  
       {
          //////////////////////////// DataEntry
          vr = newDocEntry->GetVR();
+         // Useless checking, now !
+         /*
          if ( Filetype == ExplicitVR && 
                !Global::GetVR()->IsVROfBinaryRepresentable(vr) )
          { 
                ////// No DataEntry: should mean UNKOWN VR
                gdcmWarningMacro( std::hex << newDocEntry->GetGroup() 
                                  << "|" << newDocEntry->GetElement()
-                                 << " : No DataEntry." 
-                                 "Probably unknown VR.");
+                                 << " : unknown VR." 
+                                 " Probably 'Implicit VR' entry within "
+                                 "an explicit VR 'document'.");
          }
+         */
 
          if ( !set->AddEntry( newDataEntry ) )
          {
@@ -1051,7 +1057,7 @@ void Document::ParseDES(DocEntrySet *set, long offset,
                (!delim_mode && ((long)(Fp->tellg())-offset) >= l_max) )
          {
             if ( !used )
-               delete newDocEntry;
+               newDocEntry->Delete();
             break;
          }
 
@@ -1081,7 +1087,7 @@ void Document::ParseDES(DocEntrySet *set, long offset,
             if ( newDocEntry->GetGroup()%2 != 0 )
             {
                 Fp->seekg( l, std::ios::cur);
-                delete newDocEntry;  // Delete, not in the set 
+                newDocEntry->Delete();  // Delete, not in the set 
                 continue;  
             } 
          } 
@@ -1089,7 +1095,7 @@ void Document::ParseDES(DocEntrySet *set, long offset,
          {
            // User asked to skip *any* SeQuence
             Fp->seekg( l, std::ios::cur);
-            delete newDocEntry; // Delete, not in the set
+            newDocEntry->Delete(); // Delete, not in the set
             continue;
          }
          // delay the dynamic cast as late as possible
@@ -1142,14 +1148,14 @@ void Document::ParseDES(DocEntrySet *set, long offset,
          if ( !delim_mode && ((long)(Fp->tellg())-offset) >= l_max)
          {
             if ( !used )
-               delete newDocEntry;  
+               newDocEntry->Delete();
                break;
          }
       }  // end SeqEntry : VR = "SQ"
 
       if ( !used )
       {
-         delete newDocEntry;
+         newDocEntry->Delete();
       }
       first = false;
    }                               // end While
@@ -1188,7 +1194,7 @@ void Document::ParseSQ( SeqEntry *seqEntry,
       }
       if ( !delim_mode && ((long)(Fp->tellg())-offset) >= l_max)
       {
-         delete newDocEntry;
+         newDocEntry->Delete();
          break;
       }
       // create the current SQItem
@@ -1206,7 +1212,7 @@ void Document::ParseSQ( SeqEntry *seqEntry,
 
       // Let's try :------------
       // remove fff0,e000, created out of the SQItem
-      delete newDocEntry;
+      newDocEntry->Delete();
       Fp->seekg(offsetStartCurrentSQItem, std::ios::beg);
       // fill up the current SQItem, starting at the beginning of fff0,e000
 
@@ -1234,7 +1240,7 @@ DocEntry *Document::Backtrack(DocEntry *docEntry)
 {
    // delete the Item Starter, built erroneously out of any Sequence
    // it's not yet in the HTable/chained list
-   delete docEntry;
+   docEntry->Delete();
 
    // Get all info we can from PreviousDocEntry
    uint16_t group = PreviousDocEntry->GetGroup();
@@ -2006,7 +2012,7 @@ DocEntry *Document::ReadNextDocEntry()
    catch ( FormatError )
    {
       // Call it quits
-      delete newEntry;
+      newEntry->Delete();
       return 0;
    }