From 088100ec11c9814549610307c848af8c14e81ba6 Mon Sep 17 00:00:00 2001 From: jpr Date: Fri, 10 Jun 2005 14:05:37 +0000 Subject: [PATCH] Bug fix in Load method. Thx to Benoit for providing fix. --- src/gdcmDocument.cxx | 15 +++++-------- src/gdcmFile.cxx | 53 ++++++++++++++++++++++++++------------------ src/gdcmFile.h | 7 ++++-- 3 files changed, 42 insertions(+), 33 deletions(-) diff --git a/src/gdcmDocument.cxx b/src/gdcmDocument.cxx index cf01f037..17a7cdfe 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/06/07 15:31:31 $ - Version: $Revision: 1.244 $ + Date: $Date: 2005/06/10 14:05:38 $ + Version: $Revision: 1.245 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -65,7 +65,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 open for parsing */ Document::Document( std::string const &fileName ) :ElementSet(-1) @@ -83,11 +83,6 @@ Document::Document( std::string const &fileName ) IsDocumentAlreadyLoaded = false; Load(fileName); - - // Normaly (?) Fp should be already deleted by CloseFile() - if ( Fp != 0 ) - delete Fp; - Fp = 0; } /** * \brief Canonical destructor. @@ -103,7 +98,7 @@ Document::~Document () /** * \brief Loader - * @param fileName 'Document' (File or DicomDir) to be opened for parsing + * @param fileName 'Document' (File or DicomDir) to be open for parsing * @return false if file cannot be open or no swap info was found, * or no tag was found. */ @@ -118,7 +113,7 @@ bool Document::Load( std::string const &fileName ) << Filename.c_str() << ". New name is :" << fileName ); // todo : clean out the 'Document' - // We should call ClearEntry() on the parent object ?!? + // Should we call ClearEntry() on the parent object ?!? } Filename = fileName; diff --git a/src/gdcmFile.cxx b/src/gdcmFile.cxx index 3fc1414a..a1c975f4 100644 --- a/src/gdcmFile.cxx +++ b/src/gdcmFile.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmFile.cxx,v $ Language: C++ - Date: $Date: 2005/06/03 16:08:16 $ - Version: $Revision: 1.241 $ + Date: $Date: 2005/06/10 14:05:37 $ + Version: $Revision: 1.242 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -55,7 +55,7 @@ File::File(): { RLEInfo = new RLEFramesInfo; JPEGInfo = new JPEGFragmentsInfo; - GrPixel = 0x7fe0; + GrPixel = 0x7fe0; // to avoid further troubles NumPixel = 0x0010; } @@ -69,6 +69,33 @@ File::File( std::string const &filename ) RLEInfo = new RLEFramesInfo; JPEGInfo = new JPEGFragmentsInfo; + Load( filename ); +} + +/** + * \brief Canonical destructor. + */ +File::~File () +{ + if( RLEInfo ) + delete RLEInfo; + if( JPEGInfo ) + delete JPEGInfo; +} + +//----------------------------------------------------------------------------- +// Public + +/** + * \brief Loader + * @param fileName file to be open for parsing + * @return false if file cannot be open or no swap info was found, + * or no tag was found. + */ +bool File::Load( std::string const &fileName ) +{ + this->Document::Load( fileName ); + // for some ACR-NEMA images GrPixel, NumPixel is *not* 7fe0,0010 // We may encounter the 'RETired' (0x0028, 0x0200) tag // (Image Location") . This entry contains the number of @@ -125,7 +152,7 @@ File::File( std::string const &filename ) ComputeJPEGFragmentInfo(); CloseFile(); - // Create a new BinEntry to change the the DictEntry + // Create a new BinEntry to change the DictEntry // The changed DictEntry will have // - a correct PixelVR OB or OW) // - the name to "Pixel Data" @@ -156,24 +183,8 @@ File::File( std::string const &filename ) } } } + return true; } - - -/** - * \brief Canonical destructor. - */ -File::~File () -{ - if( RLEInfo ) - delete RLEInfo; - if( JPEGInfo ) - delete JPEGInfo; -} - -//----------------------------------------------------------------------------- -// Public - - /** * \brief This predicate, based on hopefully reasonable heuristics, * decides whether or not the current File was properly parsed diff --git a/src/gdcmFile.h b/src/gdcmFile.h index 0afb7cef..b8264c05 100644 --- a/src/gdcmFile.h +++ b/src/gdcmFile.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmFile.h,v $ Language: C++ - Date: $Date: 2005/03/22 11:37:15 $ - Version: $Revision: 1.106 $ + Date: $Date: 2005/06/10 14:05:38 $ + Version: $Revision: 1.107 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -99,6 +99,9 @@ public: File( std::string const &filename ); ~File(); + // Loading + bool Load( std::string const &filename ); + // Standard values and informations contained in the header bool IsReadable(); -- 2.46.0