From 3afc179392ebebe610f7685bc8895b690c2a66aa Mon Sep 17 00:00:00 2001 From: regrain Date: Mon, 15 Nov 2004 15:29:03 +0000 Subject: [PATCH] * src/gdcmFile.cxx : now delete the PixelConvert instance. * In examples and tests : change the type of image data variables from void* to uint8_t*. Remmove all delete on image data variables -- BeNours --- ChangeLog | 5 ++++ Example/TestReadWriteReadCompare.cxx | 8 +------ Example/TestWriteSimple.cxx | 3 +-- Example/Write.cxx | 2 +- Example/WriteRead.cxx | 2 +- Testing/TestAllReadCompareDicom.cxx | 36 +++++----------------------- Testing/TestChangeHeader.cxx | 2 +- Testing/TestReadWriteReadCompare.cxx | 8 +------ src/gdcmFile.cxx | 6 ++--- vtk/vtkGdcmReader.cxx | 8 +++++-- 10 files changed, 26 insertions(+), 54 deletions(-) diff --git a/ChangeLog b/ChangeLog index 3f929ffd..ed477178 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-11-15 Benoit Regrain + * src/gdcmFile.cxx : now delete the PixelConvert instance. + * In examples and tests : change the type of image data variables from void* + to uint8_t*. Remmove all delete on image data variables + 2004-11-10 Benoit Regrain * src/gdcmDocument.cxx : Set the file pointer TP to 0 in the constructors. Verify the file pointer value before open the file, and if it's not null, diff --git a/Example/TestReadWriteReadCompare.cxx b/Example/TestReadWriteReadCompare.cxx index cf484034..9ef3f67a 100644 --- a/Example/TestReadWriteReadCompare.cxx +++ b/Example/TestReadWriteReadCompare.cxx @@ -95,7 +95,7 @@ int main(int argc, char* argv[]) std::cout << "3..."; // For the next step: int dataSizeWritten = reread->GetImageDataSize(); - void* imageDataWritten = reread->GetImageData(); + uint8_t* imageDataWritten = reread->GetImageData(); //////////////// Step 4: @@ -104,8 +104,6 @@ int main(int argc, char* argv[]) std::cout << std::endl << " Pixel areas lengths differ: " << dataSize << " # " << dataSizeWritten << std::endl; - delete (char*)imageData; - delete (char*)imageDataWritten; delete header; delete file; delete reread; @@ -117,8 +115,6 @@ int main(int argc, char* argv[]) (void)res; std::cout << std::endl << " Pixel differ (as expanded in memory)." << std::endl; - delete (char*)imageData; - delete (char*)imageDataWritten; delete header; delete file; delete reread; @@ -127,8 +123,6 @@ int main(int argc, char* argv[]) std::cout << "4...OK." << std::endl ; //////////////// Clean up: - delete (char*)imageData; - delete (char*)imageDataWritten; delete header; delete file; delete reread; diff --git a/Example/TestWriteSimple.cxx b/Example/TestWriteSimple.cxx index 0c03379c..87aeeea0 100644 --- a/Example/TestWriteSimple.cxx +++ b/Example/TestWriteSimple.cxx @@ -18,7 +18,7 @@ int main(int argc, char* argv[]) // If the following call is important, then the API sucks. Why is it // required to allocate PixelData when we are not using it !? - void* PixelData = f2->GetImageData(); //EXTREMELY IMPORTANT + uint8_t* PixelData = f2->GetImageData(); //EXTREMELY IMPORTANT //Otherwise ReadPixel == -1 -> the dicom writing fails completely int dataSize = f2->GetImageDataSize(); @@ -30,7 +30,6 @@ int main(int argc, char* argv[]) f2->WriteDcmExplVR( output ); - delete[] imageData; delete f1; delete f2; //delete PixelData; //Does GetImageData return the same pointer ? diff --git a/Example/Write.cxx b/Example/Write.cxx index 51352fe6..13a9739d 100644 --- a/Example/Write.cxx +++ b/Example/Write.cxx @@ -11,7 +11,7 @@ int main(int argc, char* argv[]) gdcm::File * f1; //gdcmDocument * d; //not used - void* imageData; + uint8_t* imageData; int dataSize; if (argc < 3) { diff --git a/Example/WriteRead.cxx b/Example/WriteRead.cxx index 54f9140a..ac57e18f 100644 --- a/Example/WriteRead.cxx +++ b/Example/WriteRead.cxx @@ -10,7 +10,7 @@ int main(int argc, char* argv[]) gdcm::Header* e1, *e2; gdcm::File * f1, *f2; - void* imageData, *imageData2; + uint8_t* imageData, *imageData2; int dataSize, dataSize2; if( argc < 2 ) diff --git a/Testing/TestAllReadCompareDicom.cxx b/Testing/TestAllReadCompareDicom.cxx index a4690f19..21aba424 100644 --- a/Testing/TestAllReadCompareDicom.cxx +++ b/Testing/TestAllReadCompareDicom.cxx @@ -27,16 +27,13 @@ int InternalTest(std::string const & filename, if (! testFILE ) { ////// Step 3a: - - int testedDataSize = tested->GetImageDataSize(); - (void)testedDataSize; - void* testedImageData = tested->GetImageData(); // Kludge + uint8_t* testedImageData = tested->GetImageData(); // Kludge tested->WriteDcmExplVR( referenceFileName ); std::cerr << " Creating reference baseline file :" << std::endl << " " << referenceFileName << std::endl; delete tested; - delete (char*)testedImageData; + //delete (char*)testedImageData; return 0; } else @@ -60,10 +57,10 @@ int InternalTest(std::string const & filename, ////// Step 3b: int testedDataSize = tested->GetImageDataSize(); - void* testedImageData = tested->GetImageData(); + uint8_t* testedImageData = tested->GetImageData(); int referenceDataSize = reference->GetImageDataSize(); - void* referenceImageData = reference->GetImageData(); + uint8_t* referenceImageData = reference->GetImageData(); if (testedDataSize != referenceDataSize) { @@ -72,8 +69,6 @@ int InternalTest(std::string const & filename, << std::endl; delete tested; delete reference; - delete (char*)testedImageData; - delete (char*)referenceImageData; return 1; } @@ -85,17 +80,14 @@ int InternalTest(std::string const & filename, << std::endl; delete tested; delete reference; - delete (char*)testedImageData; - delete (char*)referenceImageData; return 1; } - std::cout << " Passed." << std::endl ; + std::cout << " Passed..." << std::endl; //////////////// Clean up: delete tested; delete reference; - delete (char*)testedImageData; - delete (char*)referenceImageData; + std::cout << " Passed clean up." << std::endl ; return 0; } @@ -173,23 +165,7 @@ int TestAllReadCompareDicom(int argc, char* argv[]) testDIR->close(); } -/* FILE* testFILE = fopen( baseLineDir.c_str(), "r" ); - if (!testFILE ) - { - std::cerr << " The reference baseline directory " << std::endl - << " " - << baseLineDir << std::endl - << " couldn't be opened." - << std::endl; - return 1; - } - else - { - fclose( testFILE ); - }*/ - ////// Step 1 (see above description): - std::string filename = GDCM_DATA_ROOT; filename += "/"; filename += gdcmDataImages[i]; diff --git a/Testing/TestChangeHeader.cxx b/Testing/TestChangeHeader.cxx index bfae6f1a..4c7f0ffa 100644 --- a/Testing/TestChangeHeader.cxx +++ b/Testing/TestChangeHeader.cxx @@ -61,7 +61,7 @@ int TestChangeHeader(int argc, char* argv[]) int dataSize = f2->GetImageDataSize(); printf ("dataSize %d\n",dataSize); - void* imageData= f2->GetImageData(); + uint8_t* imageData= f2->GetImageData(); // TODO : Why don't we merge theese 2 functions ? diff --git a/Testing/TestReadWriteReadCompare.cxx b/Testing/TestReadWriteReadCompare.cxx index 66115b8e..6d53cda1 100644 --- a/Testing/TestReadWriteReadCompare.cxx +++ b/Testing/TestReadWriteReadCompare.cxx @@ -65,7 +65,7 @@ int CompareInternal(std::string const & filename, std::string const & output) std::cout << "3..."; // For the next step: int dataSizeWritten = reread->GetImageDataSize(); - void* imageDataWritten = reread->GetImageData(); + uint8_t* imageDataWritten = reread->GetImageData(); //////////////// Step 4: @@ -74,8 +74,6 @@ int CompareInternal(std::string const & filename, std::string const & output) std::cout << std::endl << " Pixel areas lengths differ: " << dataSize << " # " << dataSizeWritten << std::endl; - delete[] (char*)imageData; - delete[] (char*)imageDataWritten; delete header; delete file; delete reread; @@ -87,8 +85,6 @@ int CompareInternal(std::string const & filename, std::string const & output) (void)res; std::cout << std::endl << " Pixel differ (as expanded in memory)." << std::endl; - delete[] (char*)imageData; - delete[] (char*)imageDataWritten; delete header; delete file; delete reread; @@ -97,8 +93,6 @@ int CompareInternal(std::string const & filename, std::string const & output) std::cout << "4...OK." << std::endl ; //////////////// Clean up: - delete[] (char*)imageData; - delete[] (char*)imageDataWritten; delete header; delete file; delete reread; diff --git a/src/gdcmFile.cxx b/src/gdcmFile.cxx index 955e0989..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/10 18:27:23 $ - Version: $Revision: 1.153 $ + 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 @@ -108,7 +108,7 @@ File::~File() DeleteInitialValues(); if( PixelConverter ) { - //delete PixelConverter; + delete PixelConverter; } } diff --git a/vtk/vtkGdcmReader.cxx b/vtk/vtkGdcmReader.cxx index 60f03813..64a369f1 100644 --- a/vtk/vtkGdcmReader.cxx +++ b/vtk/vtkGdcmReader.cxx @@ -58,7 +58,7 @@ #include #include -vtkCxxRevisionMacro(vtkGdcmReader, "$Revision: 1.52 $"); +vtkCxxRevisionMacro(vtkGdcmReader, "$Revision: 1.53 $"); vtkStandardNewMacro(vtkGdcmReader); //----------------------------------------------------------------------------- @@ -690,7 +690,11 @@ size_t vtkGdcmReader::LoadImageInMemory( // fclose(f2); //GetImageData allocate a (void*)malloc, remove it: - delete[] pSource; + + // CLEANME + // Now, the delete on values keep from GetImageData is useless (made in + // the PixelConvert class) + //delete[] pSource; return size; } -- 2.45.1