]> Creatis software - gdcm.git/blobdiff - src/gdcmDocument.cxx
Bugfixes. --- JPR (with frog)
[gdcm.git] / src / gdcmDocument.cxx
index 43f9b0a199eb97a473651f644d3b2a25dcb4a47e..e29c08bfc24dd287b2ecbacc27528ac6955d67ea 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDocument.cxx,v $
   Language:  C++
-  Date:      $Date: 2004/06/23 09:30:22 $
-  Version:   $Revision: 1.26 $
+  Date:      $Date: 2004/06/23 15:01:57 $
+  Version:   $Revision: 1.29 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -571,8 +571,8 @@ bool gdcmDocument::WriteF(FileType filetype) {
  * if ( filetype == ACR)
  *    UpdateGroupLength(true,ACR);
  */
-   Write(fp,filetype);  // the gdcmElementSet one !
+       
+       gdcmElementSet::Write(fp,filetype);
 
    /// WriteEntries(fp,type); // old stuff
    return true;
@@ -1227,9 +1227,16 @@ long gdcmDocument::ParseDES(gdcmDocEntrySet *set, long offset, long l_max, bool
              NewDocEntry->GetElement() == 0x0010 )
          {
              if (NewDocEntry->GetLength()==0xffffffff)
+             {
                 // Broken US.3405.1.dcm
                 Parse7FE0(); // to skip the pixels 
                              // (multipart JPEG/RLE are trouble makers)
+             }
+             else
+             {
+                SkipToNextDocEntry(NewDocEntry);
+                l = NewDocEntry->GetFullLength(); 
+             }
          }
          else
          {
@@ -1292,6 +1299,8 @@ long gdcmDocument::ParseSQ(gdcmSeqEntry *set,
 
    while (true) {
       NewDocEntry = ReadNextDocEntry();   
+      if (!NewDocEntry)
+         break;
       if(delim_mode) {   
          if (NewDocEntry->isSequenceDelimitor()) {
             set->SetSequenceDelimitationItem(NewDocEntry);