X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=inline;f=src%2FgdcmFile.cxx;h=2faa65533b97252e4ae16041817351300ac834e9;hb=eb427dc05df82e0d814ea43533e7711ba35d189a;hp=0b9fe2dbf1c1c816259700a2c3834eba619a9217;hpb=559c3639fc5b255b36a951f352db1addead9f78f;p=gdcm.git diff --git a/src/gdcmFile.cxx b/src/gdcmFile.cxx index 0b9fe2db..2faa6553 100644 --- a/src/gdcmFile.cxx +++ b/src/gdcmFile.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmFile.cxx,v $ Language: C++ - Date: $Date: 2004/11/03 20:52:13 $ - Version: $Revision: 1.151 $ + Date: $Date: 2004/11/15 15:29:04 $ + Version: $Revision: 1.154 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -73,6 +73,7 @@ File::File(std::string const & filename ) */ void File::Initialise() { + PixelConverter = NULL; //just in case if ( HeaderInternal->IsReadable() ) { ImageDataSizeRaw = ComputeDecompressedPixelDataSizeFromHeader(); @@ -85,7 +86,7 @@ void File::Initialise() ImageDataSize = ImageDataSizeRaw; } - PixelConverter = new PixelConvert; + PixelConverter = new PixelConvert; //LEAK ! PixelConverter->GrabInformationsFromHeader( HeaderInternal ); } SaveInitialValues(); @@ -105,6 +106,11 @@ File::~File() HeaderInternal = 0; DeleteInitialValues(); + if( PixelConverter ) + { + delete PixelConverter; + } + } /** @@ -507,7 +513,7 @@ uint8_t* File::GetDecompressed() // The decompressed image migth not be loaded yet: std::ifstream* fp = HeaderInternal->OpenFile(); PixelConverter->ReadAndDecompressPixelData( fp ); - HeaderInternal->CloseFile(); + if(fp) HeaderInternal->CloseFile(); decompressed = PixelConverter->GetDecompressed(); if ( ! decompressed ) { @@ -700,6 +706,7 @@ bool File::WriteBase (std::string const & fileName, FileType type) } // ----------------- End of Special Patch ---------------- fp1->close (); + delete fp1; return true; }