Procházet zdrojové kódy

More checks for proper object state in ctkDICOMDataset

Marco Nolden před 13 roky
rodič
revize
00ce62085b
1 změnil soubory, kde provedl 7 přidání a 7 odebrání
  1. 7 7
      Libs/DICOM/Core/ctkDICOMDataset.cpp

+ 7 - 7
Libs/DICOM/Core/ctkDICOMDataset.cpp

@@ -47,19 +47,15 @@ ctkDICOMDataset::ctkDICOMDataset(bool strictErrorHandling)
 :d_ptr(new ctkDICOMDatasetPrivate)
 {
   Q_D(ctkDICOMDataset);
+  d->m_DcmDataset = new DcmDataset();
   d->m_DICOMDataSetInitialized = false;
   d->m_StrictErrorHandling = strictErrorHandling;
-
-  // d->m_DcmDataset = this;
 }
 
 ctkDICOMDataset::~ctkDICOMDataset()
 {
-//  Q_D(ctkDICOMDataset);
-//  if(d->m_DcmDataset != this)
-//  {
-//    delete d->m_DcmDataset;
-//  }
+  Q_D(ctkDICOMDataset);
+  delete d->m_DcmDataset;
 }
 
 
@@ -137,6 +133,8 @@ void ctkDICOMDataset::InitializeFromFile(const QString& filename,
 void ctkDICOMDataset::Serialize()
 {
   Q_D(ctkDICOMDataset);
+  EnsureDcmDataSetIsInitialized();
+
   // store content of current DcmDataset (our parent) as QByteArray into m_ctkDICOMDataset
   Uint32 buffersize = 1024*1024; // reserve 1MB
   char* writebuffer = new char[buffersize];
@@ -252,12 +250,14 @@ DcmDataset& ctkDICOMDataset::GetDcmDataset() const
 
 OFCondition ctkDICOMDataset::findAndGetElement(const DcmTag& tag, DcmElement*& element, const OFBool searchIntoSub) const
 {
+  EnsureDcmDataSetIsInitialized();
   // this one const_cast allows us to declare quite a lot of methods nicely with const
   return GetDcmDataset().findAndGetElement(tag, element, searchIntoSub);
 }
 
 OFCondition ctkDICOMDataset::findAndGetOFString(const DcmTag& tag, OFString& value, const unsigned long pos, const OFBool searchIntoSub) const
 {
+  EnsureDcmDataSetIsInitialized();
   // this second const_cast allows us to declare quite a lot of methods nicely with const
   return GetDcmDataset().findAndGetOFString(tag, value, pos, searchIntoSub);
 }