From: jpr Date: Fri, 3 Sep 2004 14:04:02 +0000 (+0000) Subject: FIX : X-Git-Tag: Version0.6.bp~227 X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=commitdiff_plain;h=d8f46bac2d1f45d76b1cd57ac129c75fb3fe6806;p=gdcm.git FIX : gdcmElementSet::RemoveEntry() now removes the entry from the H Table ADD : gdcmElementSet::RemoveEntryNoDestroy() removes the entry, without deletion --- diff --git a/src/gdcmElementSet.cxx b/src/gdcmElementSet.cxx index ec3f2b43..a5017dd6 100644 --- a/src/gdcmElementSet.cxx +++ b/src/gdcmElementSet.cxx @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmElementSet.cxx,v $ Language: C++ - Date: $Date: 2004/08/31 14:24:47 $ - Version: $Revision: 1.17 $ + Date: $Date: 2004/09/03 14:04:02 $ + Version: $Revision: 1.18 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -123,9 +123,27 @@ bool gdcmElementSet::AddEntry( gdcmDocEntry *newEntry) } /** - * \brief Clear the hash table from given entry. + * \brief Clear the hash table from given entry BUT keep the entry. * @param entryToRemove Entry to remove. */ +bool gdcmElementSet::RemoveEntryNoDestroy( gdcmDocEntry *entryToRemove) +{ + gdcmTagKey key = entryToRemove->GetKey(); + if( TagHT.count(key) == 1 ) + { + TagHT.erase(key); + dbg.Verbose(0, "gdcmElementSet::RemoveEntry: one element erased."); + return true; + } + + dbg.Verbose(0, "gdcmElementSet::RemoveEntry: key not present: "); + return false ; +} + +/** + * \brief Clear the hash table from given entry AND delete the entry. + * @param entryToRemove Entry to remove AND delete. + */ bool gdcmElementSet::RemoveEntry( gdcmDocEntry *entryToRemove) { gdcmTagKey key = entryToRemove->GetKey(); @@ -133,6 +151,7 @@ bool gdcmElementSet::RemoveEntry( gdcmDocEntry *entryToRemove) { TagHT.erase(key); dbg.Verbose(0, "gdcmElementSet::RemoveEntry: one element erased."); + delete entryToRemove; return true; } diff --git a/src/gdcmElementSet.h b/src/gdcmElementSet.h index df534146..0ed6c70b 100644 --- a/src/gdcmElementSet.h +++ b/src/gdcmElementSet.h @@ -3,8 +3,8 @@ Program: gdcm Module: $RCSfile: gdcmElementSet.h,v $ Language: C++ - Date: $Date: 2004/09/03 07:57:10 $ - Version: $Revision: 1.13 $ + Date: $Date: 2004/09/03 14:04:02 $ + Version: $Revision: 1.14 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or @@ -39,8 +39,9 @@ public: gdcmElementSet(int); ~gdcmElementSet(); virtual bool AddEntry(gdcmDocEntry *Entry); - virtual bool RemoveEntry(gdcmDocEntry *EntryToRemove); - + bool RemoveEntry(gdcmDocEntry *EntryToRemove); + bool RemoveEntryNoDestroy(gdcmDocEntry *EntryToRemove); + virtual void Print(std::ostream &os = std::cout); virtual void Write(FILE *fp, FileType filetype);