X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;ds=sidebyside;f=ChangeLog;h=7d0707239e74fc99e9786a147bed9253657b0c8b;hb=57e3ee08a94dc1cd122a0b9c01f091e1b6913152;hp=4e29834429f947879ef2ec25ae934994dc389f88;hpb=36205426d2bbb33e6e08793130f6b6485a500372;p=gdcm.git diff --git a/ChangeLog b/ChangeLog index 4e298344..7d070723 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,102 @@ +2004-06-21 Eric Boix + * Test/TestWriteSimple.cxx: fix to gdcmHeader-gdcmHeaderHelper revamping. + The default constructor invoked by the line + gdcmHeader *f1 = new gdcmHeader( header ); + was gdcmHeader::gdcmHeader(bool) instead of the expected + gdcmHeader::gdcmHeader(std::string const &, bool = false, bool, bool). + Hence the parsing wasn't executed... See also below. + * src/gdcmHeader.h: the declaration of gdcmHeader::gdcmHeader(bool) + as explicit constructor didn't do the trick to fix the above problem. + Could anyone explain why ? + * src/gdcmBinEntry.cxx, gdcmValEntry.cxx: gdcmBinEntry::Print() now + properly calls gdcmValEntry::Print() (that was weed out from + code related to gdcmBinEntry). + +2004-06-20 Eric Boix + * In order to fix memory leaks: + - Test/TestWriteSimple.cxx: added cleaning of free store through + some delete calls. + - src/gdcmBinEntry.cxx: fix to avoid SegFault. + - src/gdcmDicomDir.[cxx|h]: fixed initialisation in constructor + gdcmDicomDir::gdcmDicomDir(bool) [either the constructor itself + (through the call to ::AddDicomDirMeta()) or the destructor + would crash when deleting uninitialized ::metaElems]. + - src/gdcmDictEntry.cxx: annotation of ununderstood memory leak. + - src/gdcmDocument.cxx: + -- ::~gdcmDocument() destructor now cleans up all dictionary entries + from dynamic stores. + -- ::ParseDES() misplaced deletion of temporary NewDocEntry + was causing memory leaks. + - src/gdcmSQItem.cxx: + -- ::~gdcmSQItem() dummy code cleaned (learned that deletion is + cleanly handled with polymophism: sorry but my milage is low). + -- ::SetEntryByNumber(string, guint16, guint16) now cleanly allocates + a gdcmValENtry, and makes no assumption on type (gdcmDocEntry, + gdcmSeqEntry vs gdcmValEntry) of existing entry (when present). + This avoids SegFaulting. + - src/gdcmSQItem.h: coding style. + * Conclusion: + - Test/TestWriteSimple still severely sucks. The output image content + (when $(GDCMDATA_HOME)/012345.002.050.dcm in input) is brain + damaged when displayed with vtkgdcmViewer. + - on memory leaks: TestWriteSimple leaks really less (see entry + of 2004-06-18 in Changelog file for the call to valgrind). + - on segfaults: ctest now passes all the tests but one (no more + segfaults). + * Erroneous leading white fix: + - src/gdcmDict.cxx: getline(from,xxx) doesn't remove the leading + white[s] (as opposed to from >> xxx, that removes it [them]. + - src/gdcmTS.cxx: ditto. + - gdcmPython/testSuite.py: dirty related kludge removed. + * src/*: remaining references to gdcmParser removed. + * src/*[cxx|h]: added copy[way]left header. + +2004-06-18 Eric Boix + * In order to fix writing of dicom files: + - Test/TestWriteSimple.cxx: a simpler example of writing. + - Test/CMakeLists.txt changed accordingly. + - src/gdcmDocument.cxx: + -- The destructor now recursilvely removes potential sequences. + -- Bug fix in ::IsJPEG2000() + -- ::ReplaceOrCreateByNumber(std::string, guint16, guint16) + now handles promotion of gdcmDocEntry to gdcmValEntry in a cleaner + manner. + -- ::GetValEntryByNumber(guint16, guint16) now defined (as opposed + to only declared) and build on top of + ::GetDocEntryByNumber(guint16, guint16). + -- ::SetEntryByNumber() now uses GetValEntryByNumber(group, element) + - src/gdcmElementSet.[h|cxx]: added ::RemoveEntry(gdcmDocEntry *) + for usage in destructor and treatement of promotion in + ::ReplaceOrCreateByNumber(). + - src/gdcmSQItem.cxx: destructor should better handle his job. + Test/TestWriteSimple now runs (or at least it DOES something). + * We can now start hutting memory links. A good starting point is: + valgrind -q --skin=memcheck --leak-check=yes --leak-resolution=high + --num-callers=100 --show-reachable=yes gdcmTests TestWriteSimple + $(GDCMDATA_HOME)/012345.002.050.dcm foo.dcm + +2004-06-18 Eric Boix + * Valgrind note: after Mathieu Malaterre teached me how to read + the valgrind FAQ ;-] (see http://valgrind.kde.org/faq.html), I + learned that: + Using gcc, you can force the STL to use malloc and to free memory as + soon as possible by globally disabling memory caching. + With 3.2.2 and later, you should export the environment variable + GLIBCPP_FORCE_NEW before running your program. + By setting GLIBCPP_FORCE_NEW, STL related memory leak messages of gdcm + simply vanish (it is still not clear to me, whether this means that + STL std::string leaks or if valgrind believes it leaks...). + * Fixing of SegFault of Test/makeDicomDir (as shown by ctest or by + running bin/gdcmTests makeDicomDir): + - src/gdcmDicomDir.cxx: dynamic casting used + clean up. + - Test/makeDicomDir.cxx now properly traps empty lists and returns + with 1. + NOW, makeDicomDir cleanly fails (in ctest terminology) instead of + SegFaulting (I drowned in DicomDir related code when trying to + understand why the list is empty...). + * src/gdcmDocument.h: first BSD license header try. + * Doc/License.txt added. + 2004-06-15 Eric Boix * src/gdcmDocument.[h|cxx]: - Clean up of the Transfer related predicates. They are now all based @@ -199,12 +298,12 @@ 2. Tests as mentionned smarter 3. Some clean up 4. Add a new method in gdcmDict that return the PubDict by name - this is interesting for 3rd party lib like ITK, - where we could set the institution name / patient name... + this is interesting for 3rd party lib like ITK, + where we could set the institution name / patient name... * ENH: 1. Now the test suite is working for real 2. All binaries are now output in the gdcm-bin directory - (this was not true before) + (this was not true before) 2004-04-28 Jean-Pierre Roux * ENH add the provisional gdcmHeader::SQDepthLevel to allow