+2004-11-15 Benoit Regrain <Benoit.Regrain@creatis.insa-lyon.fr>
+ * FIX: src/gdcmUtil.cxx : to compile with MSVC6
+ * src/gdcmDocument.cxx : fix memory leaks. Fix possible bugs : use an object
+ after it have been deleted
+
2004-11-09 Eric Boix <Eric.Boix@creatis.insa-lyon.fr>
* FIX: src/* fix the doxygen warnings.
Program: gdcm
Module: $RCSfile: gdcmDocument.cxx,v $
Language: C++
- Date: $Date: 2004/11/16 10:25:53 $
- Version: $Revision: 1.125 $
+ Date: $Date: 2004/11/16 10:37:54 $
+ Version: $Revision: 1.126 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
" NewDocEntryByNumber failed.");
return NULL;
}
+
valEntry = new ValEntry(currentEntry);
+ delete currentEntry;
+
if ( !AddEntry(valEntry))
{
delete valEntry;
dbg.Verbose(0, "Document::ReplaceOrCreateByNumber: AddEntry"
" failed allthough this is a creation.");
+ return NULL;
}
- // This is the reason why NewDocEntryByNumber are a real
- // bad habit !!! FIXME
- delete currentEntry;
}
else
{
+ newValEntry->GetKey() );
}
+ LoadDocEntry( newValEntry );
+ bool delimitor=newValEntry->IsItemDelimitor();
if( !set->AddEntry( newValEntry ) )
{
// If here expect big troubles
delete newValEntry; //otherwise mem leak
}
- LoadDocEntry( newValEntry );
- if (newValEntry->IsItemDelimitor())
+
+ if (delimitor)
{
break;
}
}
//////////////////// BinEntry or UNKOWN VR:
- BinEntry* newBinEntry =
+/* BinEntry* newBinEntry =
new BinEntry( newDocEntry->GetDictEntry() ); //LEAK
- newBinEntry->Copy( newDocEntry );
+ newBinEntry->Copy( newDocEntry );*/
+ BinEntry* newBinEntry = new BinEntry( newDocEntry ); //LEAK
// When "this" is a Document the Key is simply of the
// form ( group, elem )...
+ newBinEntry->GetKey() );
}
+ LoadDocEntry( newBinEntry );
if( !set->AddEntry( newBinEntry ) )
{
//Expect big troubles if here
delete newBinEntry;
}
- LoadDocEntry( newBinEntry );
}
if ( ( newDocEntry->GetGroup() == 0x7fe0 )
Program: gdcm
Module: $RCSfile: gdcmElementSet.cxx,v $
Language: C++
- Date: $Date: 2004/11/16 02:54:35 $
- Version: $Revision: 1.27 $
+ Date: $Date: 2004/11/16 10:37:54 $
+ Version: $Revision: 1.28 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
dbg.Verbose(1, "ElementSet::AddEntry key already present: ",
key.c_str());
return false;
- }
- else
+ }
+ else
{
TagHT.insert(TagDocEntryHT::value_type(newEntry->GetKey(), newEntry));
return true;
- }
+ }
}
/**
Program: gdcm
Module: $RCSfile: gdcmUtil.cxx,v $
Language: C++
- Date: $Date: 2004/11/16 10:25:53 $
- Version: $Revision: 1.65 $
+ Date: $Date: 2004/11/16 10:37:54 $
+ Version: $Revision: 1.66 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#include <stdarg.h> //only included in implementation file
#include <stdio.h> //only included in implementation file
-#include <unistd.h> // for gethostname
-#include <netdb.h> // for gethostbyname
+#if defined _MSC_VER || defined(__BORLANDC__)
+ #include <winsock.h> // for gethostname & gethostbyname
+ #undef GetCurrentTime
+#else
+ #include <unistd.h> // for gethostname
+ #include <netdb.h> // for gethostbyname
+#endif
namespace gdcm
{
-
/**
* \ingroup Globals
* \brief Provide a better 'c++' approach for sprintf