]> Creatis software - gdcm.git/commitdiff
* Test/TestCopyDicom.cxx : the new dicom created is created empty, without
authorregrain <regrain>
Thu, 2 Dec 2004 15:14:15 +0000 (15:14 +0000)
committerregrain <regrain>
Thu, 2 Dec 2004 15:14:15 +0000 (15:14 +0000)
     file name in input
   * src/gdcmSeqEntry.cxx : bug fix in destruction of an element
   * src/gdcmHeader.cxx : bug fix. Keep the string, otherwise it is destroyed.
     The string leaves only in the fonction. So when we make a .c_str(), we
     get the pointeur on the first element, element that will be destroyed
     immediately after thee instruction.
   * src/gdcmDocument.cxx : remove memory leaks. Bug fix when testing if the
     file has been opened : the test must be made on the content of the
     pointer and not directly on the pointer !
     Code formatting
   -- BeNours

ChangeLog
Testing/TestCopyDicom.cxx
src/gdcmDocument.cxx
src/gdcmHeader.cxx
src/gdcmSeqEntry.cxx

index 757a7515bc22ca76cbf96da8bb3a089e527ccd07..96cee2d14031929efd9dbc261d702d8fc01e7a57 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2004-12-02 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+   * Test/TestCopyDicom.cxx : the new dicom created is created empty, without
+     file name in input
+   * src/gdcmSeqEntry.cxx : bug fix in destruction of an element
+   * src/gdcmHeader.cxx : bug fix. Keep the string, otherwise it is destroyed.
+     The string leaves only in the fonction. So when we make a .c_str(), we
+     get the pointeur on the first element, element that will be destroyed 
+     immediately after thee instruction.
+   * src/gdcmDocument.cxx : remove memory leaks. Bug fix when testing if the
+     file has been opened : the test must be made on the content of the 
+     pointer and not directly on the pointer !
+     Code formatting
+
 2004-12-02 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
    * gdcmPython/gdcm.i : change gdcmHeaderHelper to gdcmSerieHeader. Now,
      the python part recompiles
index cfbbfcdff277dd1305290f5ccc702591b25a82cc..f9682db6c9f5e616a8d9f036227a9afb6c63ca61 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: TestCopyDicom.cxx,v $
   Language:  C++
-  Date:      $Date: 2004/11/26 10:55:03 $
-  Version:   $Revision: 1.23 $
+  Date:      $Date: 2004/12/02 15:14:16 $
+  Version:   $Revision: 1.24 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -74,7 +74,7 @@ int CopyDicom(std::string const & filename,
       //////////////// Step 1:
       std::cout << "      1...";
       gdcm::Header *originalH = new gdcm::Header( filename );
-      gdcm::Header *copyH     = new gdcm::Header( output );
+      gdcm::Header *copyH     = new gdcm::Header( );
 
       //First of all copy the header field by field
   
index e561603b8384e10910d82ac1dbbc06568944339c..2fd8fdfeee442e1da526a2b3b78fde8086967e67 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmDocument.cxx,v $
   Language:  C++
-  Date:      $Date: 2004/11/30 16:59:32 $
-  Version:   $Revision: 1.144 $
+  Date:      $Date: 2004/12/02 15:14:17 $
+  Version:   $Revision: 1.145 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -411,7 +411,11 @@ FileType Document::GetFileType()
  */
 std::ifstream* Document::OpenFile()
 {
-   if (Filename.length() == 0) return 0;
+   if (Filename.length() == 0) 
+   {
+      return 0;
+   }
+
    if(Fp)
    {
       dbg.Verbose( 0,
@@ -420,12 +424,13 @@ std::ifstream* Document::OpenFile()
    }
 
    Fp = new std::ifstream(Filename.c_str(), std::ios::in | std::ios::binary);
-
-   if(!Fp)
+   if( ! *Fp )
    {
       dbg.Verbose( 0,
                    "Document::OpenFile cannot open file: ",
                    Filename.c_str());
+      delete Fp;
+      Fp = 0;
       return 0;
    }
  
@@ -649,6 +654,7 @@ BinEntry* Document::ReplaceOrCreateByNumber(
          dbg.Verbose(0, "Document::ReplaceOrCreateByNumber: AddEntry"
                         " failed allthough this is a creation.");
       }
+      delete currentEntry;
    }
    else
    {
@@ -1887,7 +1893,8 @@ void Document::FindDocEntryVR( DocEntry *entry )
    // within an explicit VR file. Hence we make sure the present tag
    // is in explicit VR and try to fix things if it happens not to be
    // the case.
-   
+   vr[0] = 0x00;
+   vr[1] = 0x00;
    Fp->read (vr, (size_t)2);
    vr[2] = 0;
 
@@ -2397,6 +2404,7 @@ void Document::Initialise()
    RefShaDict = NULL;
    RLEInfo  = new RLEFramesInfo;
    JPEGInfo = new JPEGFragmentsInfo;
+   Filetype = Unknown;
 }
 
 /**
index c46ddb0f91c78decda2c1e17121b5c7d911625d7..99d6360664b1b9ce94dec513e40cb7300b801a0d 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmHeader.cxx,v $
   Language:  C++
-  Date:      $Date: 2004/11/30 16:24:31 $
-  Version:   $Revision: 1.209 $
+  Date:      $Date: 2004/12/02 15:14:18 $
+  Version:   $Revision: 1.210 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -1309,57 +1309,57 @@ void Header::InitializeDefaultHeader()
       uint16_t elem;
    } DICOM_DEFAULT_VALUE;
 
-   const char *date = Util::GetCurrentDate().c_str();
-   const char *time = Util::GetCurrentTime().c_str();
-   const char *uid  = Util::CreateUniqueUID().c_str();
+   std::string date = Util::GetCurrentDate();
+   std::string time = Util::GetCurrentTime();
+   std::string uid  = Util::CreateUniqueUID();
 
    static DICOM_DEFAULT_VALUE defaultvalue[] = {
     "76", 0x0002, 0x0000,  // MetaElementGroup Length // FIXME: how to recompute ?
     "1.2.840.10008.5.1.4.1.1.2", 0x0002, 0x0002,  // MediaStorageSOPInstanceUID (CT Image Storage)
-    uid,      0x0002, 0x0012,  // META Implementation Class UID
-    "ISO_IR 100", 0x0008, 0x0005,  // Specific Character Set
+    uid.c_str(), 0x0002, 0x0012,  // META Implementation Class UID
+    "ISO_IR 100",0x0008, 0x0005,  // Specific Character Set
     "DERIVED\\SECONDARY\\OTHER\\GDCM", 0x0008, 0x0008,  // Image Type    
     "1.2.840.10008.5.1.4.1.1.2", 0x0008, 0x0016,  // SOP Class UID
-    "",       0x0008, 0x0050,  // Accession Number
-    "GDCM",   0x0008, 0x0070,  // Manufacturer
-    "GDCM",   0x0008, 0x0080,  // Institution Name
+    "",          0x0008, 0x0050,  // Accession Number
+    "GDCM",      0x0008, 0x0070,  // Manufacturer
+    "GDCM",      0x0008, 0x0080,  // Institution Name
     "http://www-creatis.insa-lyon.fr/Public/Gdcm/", 0x0008, 0x0081,  // Institution Address
-    "",       0x0008, 0x0090,  // Refering Physician Name
-    "",       0x0008, 0x1030,  // Study Description
-    "",       0x0008, 0x1050,  // Performing Physician's Name
-    "",       0x0008, 0x1060,  // Name of Physician(s) Reading Study
-    "",       0x0010, 0x0040,  // Patient's Sex
-    uid,      0x0020, 0x000d,  // StudyInstanceUID
-    uid,      0x0020, 0x000e,  // SeriesInstanceUID
-    "",       0x0020, 0x0011,   // AcquisitionNumber
+    "",          0x0008, 0x0090,  // Refering Physician Name
+    "",          0x0008, 0x1030,  // Study Description
+    "",          0x0008, 0x1050,  // Performing Physician's Name
+    "",          0x0008, 0x1060,  // Name of Physician(s) Reading Study
+    "",          0x0010, 0x0040,  // Patient's Sex
+    uid.c_str(), 0x0020, 0x000d,  // StudyInstanceUID
+    uid.c_str(), 0x0020, 0x000e,  // SeriesInstanceUID
+    "",          0x0020, 0x0011,   // AcquisitionNumber
     "1\\0\\0\\0\\1\\0", 0x0020, 0x0037,  // Image Orientation Patient
-    "1",      0x0028, 0x0002,  // Samples per pixel 1 or 3
-    "MONOCHROME2", 0x0028, 0x0004,  // photochromatic interpretation
-
-// Date and time
-
-    date,       0x0008, 0x0012,  // Instance Creation Date
-    time,       0x0008, 0x0013,  // Instance Creation Time
-    date,       0x0008, 0x0020,  // Study Date
-    date,       0x0008, 0x0022,  // Acquisition Date
-    date,       0x0008, 0x0023,  // Content Date
-    time,       0x0008, 0x0030,  // Study Time
-    "CT",       0x0008, 0x0060,  // Modality    
-    "GDCM",     0x0010, 0x0010,  // Patient's Name
-    "GDCMID",   0x0010, 0x0020,  // Patient ID
-    "1",        0x0020, 0x0010,  // StudyID
-    "1",        0x0020, 0x0011,  // SeriesNumber
-    "1.0",      0x0018, 0x0050,  // slice Thickness
-    "1.0",      0x0018, 0x0088,  // space between slices
-    "1.0\\1.0", 0x0028, 0x0030,  // pixelSpacing
-    "64",       0x0028, 0x0010,  // nbRows
-    "64",       0x0028, 0x0011,  // nbCols
-    "16",       0x0028, 0x0100,  // BitsAllocated 8 or 16
-    "12",       0x0028, 0x0101,  // BitsStored    8 or 12
-    "11",       0x0028, 0x0102,  // HighBit       7 or 11
-    "0",        0x0028, 0x0103,  // Pixel Representation 0(unsigned) or 1(signed)
-    "1000.0",   0x0028, 0x1051,  // Window Width
-    "500.0",    0x0028, 0x1050,  // Window Center
+    "1",         0x0028, 0x0002,  // Samples per pixel 1 or 3
+    "MONOCHROME2",0x0028, 0x0004,  // photochromatic interpretation
+
+// Date and timeG
+
+    date.c_str(), 0x0008, 0x0012,  // Instance Creation Date
+    time.c_str(), 0x0008, 0x0013,  // Instance Creation Time
+    date.c_str(), 0x0008, 0x0020,  // Study Date
+    date.c_str(), 0x0008, 0x0022,  // Acquisition Date
+    date.c_str(), 0x0008, 0x0023,  // Content Date
+    time.c_str(), 0x0008, 0x0030,  // Study Time
+    "CT",         0x0008, 0x0060,  // Modality    
+    "GDCM",       0x0010, 0x0010,  // Patient's Name
+    "GDCMID",     0x0010, 0x0020,  // Patient ID
+    "1",          0x0020, 0x0010,  // StudyID
+    "1",          0x0020, 0x0011,  // SeriesNumber
+    "1.0",        0x0018, 0x0050,  // slice Thickness
+    "1.0",        0x0018, 0x0088,  // space between slices
+    "1.0\\1.0",   0x0028, 0x0030,  // pixelSpacing
+    "64",         0x0028, 0x0010,  // nbRows
+    "64",         0x0028, 0x0011,  // nbCols
+    "16",         0x0028, 0x0100,  // BitsAllocated 8 or 16
+    "12",         0x0028, 0x0101,  // BitsStored    8 or 12
+    "11",         0x0028, 0x0102,  // HighBit       7 or 11
+    "0",          0x0028, 0x0103,  // Pixel Representation 0(unsigned) or 1(signed)
+    "1000.0",     0x0028, 0x1051,  // Window Width
+    "500.0",      0x0028, 0x1050,  // Window Center
      0, 0, 0
    };
 
index 8ece4978a456d8d7a8526cee5e8b061a7d65e5de..f7669d3660d15a1b71542719fa90724704c1ac7e 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmSeqEntry.cxx,v $
   Language:  C++
-  Date:      $Date: 2004/11/25 15:46:11 $
-  Version:   $Revision: 1.38 $
+  Date:      $Date: 2004/12/02 15:14:18 $
+  Version:   $Revision: 1.39 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -72,7 +72,7 @@ SeqEntry::~SeqEntry()
    {
       delete *cc;
    }
-   if (!SeqTerm)
+   if (SeqTerm)
    {
       delete SeqTerm;
    }