knoaman 2003/05/29 06:26:44 Modified: c/src/xercesc/util ValueVectorOf.hpp ValueVectorOf.c ValueStackOf.hpp ValueStackOf.c Log: Fix memory leak when using deprecated dom. Revision Changes Path 1.7 +5 -0 xml-xerces/c/src/xercesc/util/ValueVectorOf.hpp Index: ValueVectorOf.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/ValueVectorOf.hpp,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- ValueVectorOf.hpp 16 May 2003 21:37:00 -0000 1.6 +++ ValueVectorOf.hpp 29 May 2003 13:26:44 -0000 1.7 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.7 2003/05/29 13:26:44 knoaman + * Fix memory leak when using deprecated dom. + * * Revision 1.6 2003/05/16 21:37:00 knoaman * Memory manager implementation: Modify constructors to pass in the memory manager. * @@ -120,6 +123,7 @@ ( const unsigned int maxElems , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + , const bool toCallDestructor = false ); ValueVectorOf(const ValueVectorOf<TElem>& toCopy); ~ValueVectorOf(); @@ -174,6 +178,7 @@ // The list of elements, which is dynamically allocated to the needed // size. // ----------------------------------------------------------------------- + bool fCallDestructor; unsigned int fCurCount; unsigned int fMaxCount; TElem* fElemList; 1.7 +15 -3 xml-xerces/c/src/xercesc/util/ValueVectorOf.c Index: ValueVectorOf.c =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/ValueVectorOf.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- ValueVectorOf.c 20 May 2003 21:06:30 -0000 1.6 +++ ValueVectorOf.c 29 May 2003 13:26:44 -0000 1.7 @@ -56,6 +56,9 @@ /** * $Log$ + * Revision 1.7 2003/05/29 13:26:44 knoaman + * Fix memory leak when using deprecated dom. + * * Revision 1.6 2003/05/20 21:06:30 knoaman * Set values to 0. * @@ -112,9 +115,11 @@ // --------------------------------------------------------------------------- template <class TElem> ValueVectorOf<TElem>::ValueVectorOf(const unsigned int maxElems, - MemoryManager* const manager) : + MemoryManager* const manager, + const bool toCallDestructor) : - fCurCount(0) + fCallDestructor(toCallDestructor) + , fCurCount(0) , fMaxCount(maxElems) , fElemList(0) , fMemoryManager(manager) @@ -130,7 +135,8 @@ template <class TElem> ValueVectorOf<TElem>::ValueVectorOf(const ValueVectorOf<TElem>& toCopy) : - fCurCount(toCopy.fCurCount) + fCallDestructor(toCopy.fCallDestructor) + , fCurCount(toCopy.fCurCount) , fMaxCount(toCopy.fMaxCount) , fElemList(0) , fMemoryManager(toCopy.fMemoryManager) @@ -139,12 +145,18 @@ ( fMaxCount * sizeof(TElem) ); //new TElem[fMaxCount]; + + memset(fElemList, 0, fMaxCount * sizeof(TElem)); for (unsigned int index = 0; index < fCurCount; index++) fElemList[index] = toCopy.fElemList[index]; } template <class TElem> ValueVectorOf<TElem>::~ValueVectorOf() { + if (fCallDestructor) { + for (int index= fMaxCount - 1; index >= 0; index--) + fElemList[index].~TElem(); + } fMemoryManager->deallocate(fElemList); //delete [] fElemList; } 1.6 +5 -1 xml-xerces/c/src/xercesc/util/ValueStackOf.hpp Index: ValueStackOf.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/ValueStackOf.hpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- ValueStackOf.hpp 16 May 2003 06:01:52 -0000 1.5 +++ ValueStackOf.hpp 29 May 2003 13:26:44 -0000 1.6 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.6 2003/05/29 13:26:44 knoaman + * Fix memory leak when using deprecated dom. + * * Revision 1.5 2003/05/16 06:01:52 knoaman * Partial implementation of the configurable memory manager. * @@ -114,7 +117,8 @@ ValueStackOf ( const unsigned int fInitCapacity - , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager + , const bool toCallDestructor = false ); ~ValueStackOf(); 1.4 +6 -2 xml-xerces/c/src/xercesc/util/ValueStackOf.c Index: ValueStackOf.c =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/ValueStackOf.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- ValueStackOf.c 16 May 2003 06:01:52 -0000 1.3 +++ ValueStackOf.c 29 May 2003 13:26:44 -0000 1.4 @@ -56,6 +56,9 @@ /** * $Log$ + * Revision 1.4 2003/05/29 13:26:44 knoaman + * Fix memory leak when using deprecated dom. + * * Revision 1.3 2003/05/16 06:01:52 knoaman * Partial implementation of the configurable memory manager. * @@ -97,9 +100,10 @@ // --------------------------------------------------------------------------- template <class TElem> ValueStackOf<TElem>::ValueStackOf(const unsigned int fInitCapacity, - MemoryManager* const manager) : + MemoryManager* const manager, + const bool toCallDestructor) : - fVector(fInitCapacity, manager) + fVector(fInitCapacity, manager, toCallDestructor) { }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]