]> Creatis software - gdcm.git/blobdiff - src/gdcmFile.cxx
* Memory leak hunt with the following command:
[gdcm.git] / src / gdcmFile.cxx
index 12d464bc23159e0748f2958e340d6855c4115597..5b89912c1956dca32774aeffe5f00036a1db0ad0 100644 (file)
@@ -4,7 +4,7 @@
 #include "gdcmDebug.h"
 #include "jpeg/ljpg/jpegless.h"
 
-typedef std::pair<TagHeaderEntryHT::iterator,TagHeaderEntryHT::iterator> IterHT;
+typedef std::pair<TagDocEntryHT::iterator,TagDocEntryHT::iterator> IterHT;
 
 //-----------------------------------------------------------------------------
 // Constructor / Destructor
@@ -225,10 +225,14 @@ size_t gdcmFile::GetImageDataSizeRaw(void) {
  */
 void * gdcmFile::GetImageData (void) {
    PixelData = new char[lgrTotale];
-   if (PixelData)
+   if (PixelData) {
       GetImageDataIntoVector(PixelData, lgrTotale);
-      
+               GetHeader()->SetEntryVoidAreaByNumber(PixelData, 
+                      GetHeader()->GetGrPixel(),  
+                      GetHeader()->GetNumPixel()); 
+   }      
    PixelRead=0; // no PixelRaw
+       
    return(PixelData);
 }
 
@@ -322,8 +326,13 @@ void * gdcmFile::GetImageDataRaw (void) {
                /// Create a member lgrTotaleRaw ???
       lgrTotale /= 3;
    PixelData = new char[lgrTotale];
-   if (PixelData)
+       
+   if (PixelData) {
       GetImageDataIntoVectorRaw(PixelData, lgrTotale);
+               GetHeader()->SetEntryVoidAreaByNumber(PixelData, 
+                      GetHeader()->GetGrPixel(),  
+                      GetHeader()->GetNumPixel()); 
+   }                           
    PixelRead=1; // PixelRaw
    return(PixelData);
 }
@@ -587,6 +596,7 @@ bool gdcmFile::SetImageData(void *inData, size_t ExpectedSize) {
    Header->SetImageDataSize(ExpectedSize);
    PixelData = inData;
    lgrTotale = ExpectedSize;
+   PixelRead = 1;
    return(true);
 }
 
@@ -734,8 +744,8 @@ bool gdcmFile::WriteBase (std::string fileName, FileType type) {
    // the *last* of the (GrPixel, NumPixel), if many.
           
    TagKey key = gdcmDictEntry::TranslateToKey(grPixel, numPixel); 
-   TagHeaderEntryHT::iterator p2;
-   gdcmHeaderEntry *PixelElement;
+   TagDocEntryHT::iterator p2;
+   gdcmDocEntry *PixelElement;
    
    IterHT it= Header->GetEntry().equal_range(key); // get a pair of iterators first-last synonym