X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmDocument.cxx;h=fc405eef2fa89450ea156c66e756ad751e0eba5a;hb=4822f705ce310f318fd342fdcf00024f9a44acd4;hp=665604a2996f5f997ac008d2cfdf8e8b4db89cca;hpb=4f189b7cd8d7aff962887245b7b30ede39b7856c;p=gdcm.git diff --git a/src/gdcmDocument.cxx b/src/gdcmDocument.cxx index 665604a2..fc405eef 100644 --- a/src/gdcmDocument.cxx +++ b/src/gdcmDocument.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmDocument.cxx,v $ Language: C++ - Date: $Date: 2005/10/24 16:00:47 $ - Version: $Revision: 1.304 $ + Date: $Date: 2005/10/26 06:09:34 $ + Version: $Revision: 1.308 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -605,7 +605,7 @@ void Document::WriteContent(std::ofstream *fp, FileType filetype) // Skip if user wants to write an ACR-NEMA file if ( filetype == ImplicitVR || filetype == ExplicitVR || - filetype == JPEG ) + filetype == JPEG ) { // writing Dicom File Preamble char filePreamble[128]; @@ -1025,6 +1025,7 @@ void Document::ParseDES(DocEntrySet *set, long offset, } else { + newDataEntry->Delete(); // Load only if we can add (not a duplicate key) LoadDocEntry( newDataEntry ); } @@ -1144,12 +1145,16 @@ void Document::ParseDES(DocEntrySet *set, long offset, << newSeqEntry->GetOffset() << " )" ); used = false; } + else + { + newDocEntry->Delete(); + } if ( !delim_mode && ((long)(Fp->tellg())-offset) >= l_max) { if ( !used ) newDocEntry->Delete(); - break; + break; } } // end SeqEntry : VR = "SQ" @@ -1189,6 +1194,7 @@ void Document::ParseSQ( SeqEntry *seqEntry, if ( newDocEntry->IsSequenceDelimitor() ) { seqEntry->SetDelimitationItem( newDocEntry ); + newDocEntry->Delete(); break; } } @@ -1198,7 +1204,7 @@ void Document::ParseSQ( SeqEntry *seqEntry, break; } // create the current SQItem - SQItem *itemSQ = new SQItem( seqEntry->GetDepthLevel() ); + SQItem *itemSQ = SQItem::New( seqEntry->GetDepthLevel() ); unsigned int l = newDocEntry->GetReadLength(); if ( l == 0xffffffff ) @@ -1212,7 +1218,6 @@ void Document::ParseSQ( SeqEntry *seqEntry, // Let's try :------------ // remove fff0,e000, created out of the SQItem - newDocEntry->Delete(); Fp->seekg(offsetStartCurrentSQItem, std::ios::beg); // fill up the current SQItem, starting at the beginning of fff0,e000 @@ -1222,6 +1227,8 @@ void Document::ParseSQ( SeqEntry *seqEntry, // end try ----------------- seqEntry->AddSQItem( itemSQ, SQItemNumber ); + itemSQ->Delete(); + newDocEntry->Delete(); SQItemNumber++; if ( !delim_mode && ((long)(Fp->tellg())-offset ) >= l_max ) { @@ -1495,7 +1502,7 @@ VRKey Document::FindDocEntryVR() VRKey vr; Fp->read(&(vr[0]),(size_t)2); - gdcmDebugMacro( "--> VR: " << vr ) + //gdcmDebugMacro( "--> VR: " << vr ) if ( !CheckDocEntryVR(vr) ) { gdcmWarningMacro( "Unknown VR '" << vr << "'" ) @@ -1975,7 +1982,7 @@ DocEntry *Document::ReadNextDocEntry() } } } - gdcmDebugMacro( "Found VR: " << vr << " / Real VR: " << realVR ); + // gdcmDebugMacro( "Found VR: " << vr << " / Real VR: " << realVR ); DocEntry *newEntry; if ( Global::GetVR()->IsVROfSequence(realVR) )