X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=src%2FgdcmDocument.cxx;h=cc3679cada0add88b233420c5bf0552245eb0c9c;hb=6cf34d5df01e8ec0572bcef6c6b91be58212ef77;hp=778e9a3854189ba48174d14f91e87e3f0432157b;hpb=693be63ee7a331d55d3791caa637e40679f31251;p=gdcm.git diff --git a/src/gdcmDocument.cxx b/src/gdcmDocument.cxx index 778e9a38..cc3679ca 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/05/18 10:12:07 $ - Version: $Revision: 1.240 $ + Date: $Date: 2005/06/03 16:05:23 $ + Version: $Revision: 1.243 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -67,7 +67,7 @@ Document::Document() /** * \brief Constructor (not to break the API) - * @param filename 'Document' (File or DicomDir) to be opened for parsing + * @param fileName 'Document' (File or DicomDir) to be opened for parsing */ Document::Document( std::string const &fileName ) :ElementSet(-1) @@ -84,7 +84,12 @@ Document::Document( std::string const &fileName ) // Load will set it to true if sucessfull IsDocumentAlreadyLoaded = false; - Load(fileName); + Load(fileName); + + // Normaly (?) Fp should be already deleted by CloseFile() + if ( Fp != 0 ) + delete Fp; + Fp = 0; } /** * \brief Canonical destructor. @@ -100,7 +105,7 @@ Document::~Document () /** * \brief Loader - * @param filename 'Document' (File or DicomDir) to be opened for parsing + * @param fileName 'Document' (File or DicomDir) to be opened for parsing * @return false if file cannot be open or no swap info was found, * or no tag was found. */ @@ -111,9 +116,9 @@ bool Document::Load( std::string const &fileName ) if( IsDocumentAlreadyLoaded ) { gdcmWarningMacro( "A file was already parsed inside this " - << "gdcm::Document (previous name was: " - << Filename.c_str() << ". New name is :" - << fileName ); + << "gdcm::Document (previous name was: " + << Filename.c_str() << ". New name is :" + << fileName ); // todo : clean out the 'Document' // We should call ClearEntry() on the parent object ?!? } @@ -802,9 +807,9 @@ int Document::ComputeGroup0002Length( FileType filetype ) if( filetype == ExplicitVR ) { - if ( (vr == "OB") || (vr == "OW") || (vr == "SQ") ) + if ( (vr == "OB") || (vr == "OW") || (vr == "SQ") || (vr == "UT") ) { - // explicit VR AND OB, OW, SQ : 4 more bytes + // explicit VR AND OB, OW, SQ, UT : 4 more bytes groupLength += 4; } } @@ -1299,7 +1304,7 @@ void Document::FindDocEntryLength( DocEntry *entry ) if ( Filetype == ExplicitVR && !entry->IsImplicitVR() ) { - if ( vr == "OB" || vr == "OW" || vr == "SQ" || vr == "UN" ) + if ( vr == "OB" || vr == "OW" || vr == "SQ" || vr == "UT" || vr == "UN" ) { // The following reserved two bytes (see PS 3.5-2003, section // "7.1.2 Data element structure with explicit vr", p 27) must be @@ -1654,7 +1659,7 @@ void Document::FixDocEntryFoundLength(DocEntry *entry, // Allthough not recent many such GE corrupted images are still present // on Creatis hard disks. Hence this fix shall remain when such images // are no longer in use (we are talking a few years, here)... - // Note: XMedCom probably uses such a trick since it is able to read + // Note: XMedCon probably uses such a trick since it is able to read // those pesky GE images ... if ( foundLength == 13) {