cargilld 2004/11/18 16:50:23 Modified: c/src/xercesc/util NameIdPool.c NameIdPool.hpp RefHash2KeysTableOf.c RefHash2KeysTableOf.hpp RefHash3KeysIdPool.c RefHash3KeysIdPool.hpp RefHashTableOf.c RefHashTableOf.hpp ValueHashTableOf.c ValueHashTableOf.hpp Log: Memory improvement to utility classes from Christian Will. Remove dependency on XMemory. Revision Changes Path 1.11 +9 -7 xml-xerces/c/src/xercesc/util/NameIdPool.c Index: NameIdPool.c =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NameIdPool.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- NameIdPool.c 18 Nov 2004 01:35:20 -0000 1.10 +++ NameIdPool.c 19 Nov 2004 00:50:22 -0000 1.11 @@ -16,8 +16,8 @@ /** * $Log$ - * Revision 1.10 2004/11/18 01:35:20 cargilld - * Performance improvement to utility classes from Christian Will. Avoid unnecessary checks and replace with assert calls. + * Revision 1.11 2004/11/19 00:50:22 cargilld + * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory. * * Revision 1.9 2004/09/08 13:56:22 peiyongz * Apache License Version 2.0 @@ -73,6 +73,7 @@ #include <xercesc/util/IllegalArgumentException.hpp> #include <xercesc/util/NoSuchElementException.hpp> #include <xercesc/util/RuntimeException.hpp> +#include <new> #include <assert.h> XERCES_CPP_NAMESPACE_BEGIN @@ -172,7 +173,9 @@ nextElem = curElem->fNext; delete curElem->fData; - delete curElem; + // destructor is empty... + // curElem->~NameIdPoolBucketElem(); + fMemoryManager->deallocate(curElem); curElem = nextElem; } @@ -255,11 +258,9 @@ } // Create a new bucket element and add it to the appropriate list - NameIdPoolBucketElem<TElem>* newBucket = new (fMemoryManager) NameIdPoolBucketElem<TElem> - ( - elemToAdopt - , fBucketList[hashVal] - ); + NameIdPoolBucketElem<TElem>* newBucket = + new (fMemoryManager->allocate(sizeof(NameIdPoolBucketElem<TElem>))) + NameIdPoolBucketElem<TElem>(elemToAdopt,fBucketList[hashVal]); fBucketList[hashVal] = newBucket; // @@ -304,7 +305,7 @@ // Hash the key hashVal = XMLString::hash(key, fHashModulus, fMemoryManager); - assert(hashVal < fHashModulus); + assert(hashVal < fHashModulus); // Search that bucket for the key NameIdPoolBucketElem<TElem>* curElem = fBucketList[hashVal]; @@ -323,6 +324,7 @@ { // Hash the key hashVal = XMLString::hash(key, fHashModulus, fMemoryManager); + assert(hashVal < fHashModulus); // Search that bucket for the key 1.12 +4 -1 xml-xerces/c/src/xercesc/util/NameIdPool.hpp Index: NameIdPool.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/NameIdPool.hpp,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- NameIdPool.hpp 23 Sep 2004 07:10:13 -0000 1.11 +++ NameIdPool.hpp 19 Nov 2004 00:50:22 -0000 1.12 @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.12 2004/11/19 00:50:22 cargilld + * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory. + * * Revision 1.11 2004/09/23 07:10:13 amassari * Removed const from variable declaration (jira#1259) * @@ -117,7 +120,7 @@ // lists for each bucket. Because some of the compilers we have to support // are totally brain dead, it cannot be a nested class as it should be. // -template <class TElem> struct NameIdPoolBucketElem : public XMemory +template <class TElem> struct NameIdPoolBucketElem { public : NameIdPoolBucketElem 1.13 +17 -5 xml-xerces/c/src/xercesc/util/RefHash2KeysTableOf.c Index: RefHash2KeysTableOf.c =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHash2KeysTableOf.c,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- RefHash2KeysTableOf.c 18 Nov 2004 01:35:20 -0000 1.12 +++ RefHash2KeysTableOf.c 19 Nov 2004 00:50:22 -0000 1.13 @@ -16,8 +16,8 @@ /** * $Log$ - * Revision 1.12 2004/11/18 01:35:20 cargilld - * Performance improvement to utility classes from Christian Will. Avoid unnecessary checks and replace with assert calls. + * Revision 1.13 2004/11/19 00:50:22 cargilld + * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory. * * Revision 1.11 2004/09/22 11:14:22 amassari * Reorder initialization of variables in constructor @@ -80,6 +80,7 @@ #include <xercesc/util/NullPointerException.hpp> #include <assert.h> +#include <new> XERCES_CPP_NAMESPACE_BEGIN @@ -208,7 +209,9 @@ delete curElem->fData; // Then delete the current element and move forward - delete curElem; + // destructor is empty... + // curElem->~RefHash2KeysTableBucketElem(); + fMemoryManager->deallocate(curElem); curElem = nextElem; } @@ -223,6 +226,7 @@ // Hash the key unsigned int hashVal = fHash->getHashVal(key1, fHashModulus); assert(hashVal < fHashModulus); + // // Search the given bucket for this key. Keep up with the previous // element so we can patch around it. @@ -254,7 +258,10 @@ curElem = curElem->fNext; // Delete the current element - delete elemToDelete; + // delete elemToDelete; + // destructor is empty... + // curElem->~RefHash2KeysTableBucketElem(); + fMemoryManager->deallocate(elemToDelete); } else { @@ -324,7 +331,9 @@ } else { - newBucket = new (fMemoryManager) RefHash2KeysTableBucketElem<TVal>(key1, key2, valueToAdopt, fBucketList[hashVal]); + newBucket = + new (fMemoryManager->allocate(sizeof(RefHash2KeysTableBucketElem<TVal>))) + RefHash2KeysTableBucketElem<TVal>(key1, key2, valueToAdopt, fBucketList[hashVal]); fBucketList[hashVal] = newBucket; } } @@ -407,8 +416,11 @@ delete curElem->fData; // Delete the current element - delete curElem; - + // delete curElem; + // destructor is empty... + // curElem->~RefHash2KeysTableBucketElem(); + fMemoryManager->deallocate(curElem); + return; } 1.13 +4 -1 xml-xerces/c/src/xercesc/util/RefHash2KeysTableOf.hpp Index: RefHash2KeysTableOf.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHash2KeysTableOf.hpp,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- RefHash2KeysTableOf.hpp 8 Sep 2004 13:56:22 -0000 1.12 +++ RefHash2KeysTableOf.hpp 19 Nov 2004 00:50:22 -0000 1.13 @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.13 2004/11/19 00:50:22 cargilld + * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory. + * * Revision 1.12 2004/09/08 13:56:22 peiyongz * Apache License Version 2.0 * @@ -101,7 +104,7 @@ // This should really be a nested class, but some of the compilers we // have to support cannot deal with that! // -template <class TVal> struct RefHash2KeysTableBucketElem : public XMemory +template <class TVal> struct RefHash2KeysTableBucketElem { RefHash2KeysTableBucketElem(void* key1, int key2, TVal* const value, RefHash2KeysTableBucketElem<TVal>* next) : fData(value), fNext(next), fKey1(key1), fKey2(key2) 1.15 +8 -2 xml-xerces/c/src/xercesc/util/RefHash3KeysIdPool.c Index: RefHash3KeysIdPool.c =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHash3KeysIdPool.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- RefHash3KeysIdPool.c 18 Nov 2004 01:35:20 -0000 1.14 +++ RefHash3KeysIdPool.c 19 Nov 2004 00:50:22 -0000 1.15 @@ -16,8 +16,8 @@ /** * $Log$ - * Revision 1.14 2004/11/18 01:35:20 cargilld - * Performance improvement to utility classes from Christian Will. Avoid unnecessary checks and replace with assert calls. + * Revision 1.15 2004/11/19 00:50:22 cargilld + * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory. * * Revision 1.13 2004/09/08 13:56:22 peiyongz * Apache License Version 2.0 @@ -83,6 +83,7 @@ #include <xercesc/util/NullPointerException.hpp> #include <assert.h> +#include <new> XERCES_CPP_NAMESPACE_BEGIN @@ -251,7 +252,10 @@ delete curElem->fData; // Then delete the current element and move forward - delete curElem; + // delete curElem; + // destructor is empty... + // curElem->~RefHash3KeysTableBucketElem(); + fMemoryManager->deallocate(curElem); curElem = nextElem; } @@ -350,7 +354,9 @@ #if defined (XML_GCC_VERSION) && (XML_GCC_VERSION < 29600) newBucket = new RefHash3KeysTableBucketElem<TVal>(key1, key2, key3, valueToAdopt, fBucketList[hashVal]); #else - newBucket = new (fMemoryManager) RefHash3KeysTableBucketElem<TVal>(key1, key2, key3, valueToAdopt, fBucketList[hashVal]); + newBucket = + new (fMemoryManager->allocate(sizeof(RefHash3KeysTableBucketElem<TVal>))) + RefHash3KeysTableBucketElem<TVal>(key1, key2, key3, valueToAdopt, fBucketList[hashVal]); #endif fBucketList[hashVal] = newBucket; } 1.12 +5 -1 xml-xerces/c/src/xercesc/util/RefHash3KeysIdPool.hpp Index: RefHash3KeysIdPool.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHash3KeysIdPool.hpp,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- RefHash3KeysIdPool.hpp 8 Sep 2004 13:56:22 -0000 1.11 +++ RefHash3KeysIdPool.hpp 19 Nov 2004 00:50:22 -0000 1.12 @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.12 2004/11/19 00:50:22 cargilld + * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory. + * * Revision 1.11 2004/09/08 13:56:22 peiyongz * Apache License Version 2.0 * @@ -98,7 +101,7 @@ // This should really be a nested class, but some of the compilers we // have to support cannot deal with that! // -template <class TVal> struct RefHash3KeysTableBucketElem : public XMemory +template <class TVal> struct RefHash3KeysTableBucketElem { RefHash3KeysTableBucketElem( void* key1 @@ -115,6 +118,7 @@ } RefHash3KeysTableBucketElem() {}; + ~RefHash3KeysTableBucketElem() {}; TVal* fData; RefHash3KeysTableBucketElem<TVal>* fNext; 1.18 +20 -4 xml-xerces/c/src/xercesc/util/RefHashTableOf.c Index: RefHashTableOf.c =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHashTableOf.c,v retrieving revision 1.17 retrieving revision 1.18 diff -u -r1.17 -r1.18 --- RefHashTableOf.c 18 Nov 2004 01:35:20 -0000 1.17 +++ RefHashTableOf.c 19 Nov 2004 00:50:22 -0000 1.18 @@ -16,6 +16,9 @@ /** * $Log$ + * Revision 1.18 2004/11/19 00:50:22 cargilld + * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory. + * * Revision 1.17 2004/11/18 01:35:20 cargilld * Performance improvement to utility classes from Christian Will. Avoid unnecessary checks and replace with assert calls. * @@ -117,6 +120,7 @@ #include <xercesc/util/NullPointerException.hpp> #include <assert.h> +#include <new> XERCES_CPP_NAMESPACE_BEGIN @@ -254,7 +258,10 @@ delete curElem->fData; // Then delete the current element and move forward - delete curElem; + // delete curElem; + // destructor doesn't do anything... + // curElem->~RefHashTableBucketElem(); + fMemoryManager->deallocate(curElem); curElem = nextElem; } @@ -302,7 +309,10 @@ retVal = curElem->fData; // Delete the current element - delete curElem; + // delete curElem; + // destructor doesn't do anything... + // curElem->~RefHashTableBucketElem(); + fMemoryManager->deallocate(curElem); break; } @@ -440,7 +450,10 @@ } else { - newBucket = new (fMemoryManager) RefHashTableBucketElem<TVal>(key, valueToAdopt, fBucketList[hashVal]); + //newBucket = new (fMemoryManager) RefHashTableBucketElem<TVal>(key, valueToAdopt, fBucketList[hashVal]); + newBucket = + new (fMemoryManager->allocate(sizeof(RefHashTableBucketElem<TVal>))) + RefHashTableBucketElem<TVal>(key, valueToAdopt, fBucketList[hashVal]); fBucketList[hashVal] = newBucket; fCount++; } @@ -568,7 +581,10 @@ delete curElem->fData; // Delete the current element - delete curElem; + // delete curElem; + // destructor doesn't do anything... + // curElem->~RefHashTableBucketElem(); + fMemoryManager->deallocate(curElem); fCount--; 1.16 +5 -1 xml-xerces/c/src/xercesc/util/RefHashTableOf.hpp Index: RefHashTableOf.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/RefHashTableOf.hpp,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- RefHashTableOf.hpp 8 Sep 2004 13:56:23 -0000 1.15 +++ RefHashTableOf.hpp 19 Nov 2004 00:50:22 -0000 1.16 @@ -16,6 +16,9 @@ /* * $Log$ + * Revision 1.16 2004/11/19 00:50:22 cargilld + * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory. + * * Revision 1.15 2004/09/08 13:56:23 peiyongz * Apache License Version 2.0 * @@ -130,7 +133,7 @@ // This should really be a nested class, but some of the compilers we // have to support cannot deal with that! // -template <class TVal> struct RefHashTableBucketElem : public XMemory +template <class TVal> struct RefHashTableBucketElem { RefHashTableBucketElem(void* key, TVal* const value, RefHashTableBucketElem<TVal>* next) : fData(value), fNext(next), fKey(key) @@ -138,6 +141,7 @@ } RefHashTableBucketElem(){}; + ~RefHashTableBucketElem(){}; TVal* fData; RefHashTableBucketElem<TVal>* fNext; 1.11 +11 -3 xml-xerces/c/src/xercesc/util/ValueHashTableOf.c Index: ValueHashTableOf.c =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/ValueHashTableOf.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- ValueHashTableOf.c 18 Nov 2004 01:35:20 -0000 1.10 +++ ValueHashTableOf.c 19 Nov 2004 00:50:22 -0000 1.11 @@ -16,8 +16,8 @@ /** * $Log$ - * Revision 1.10 2004/11/18 01:35:20 cargilld - * Performance improvement to utility classes from Christian Will. Avoid unnecessary checks and replace with assert calls. + * Revision 1.11 2004/11/19 00:50:22 cargilld + * Memory improvement to utility classes from Christian Will. Remove dependency on XMemory. * * Revision 1.9 2004/09/08 13:56:23 peiyongz * Apache License Version 2.0 @@ -52,6 +52,7 @@ #include <xercesc/util/NullPointerException.hpp> #include <assert.h> +#include <new> XERCES_CPP_NAMESPACE_BEGIN @@ -153,7 +154,9 @@ nextElem = curElem->fNext; // delete the current element and move forward - delete curElem; + // destructor is empty... + // curElem->~ValueHashTableBucketElem(); + fMemoryManager->deallocate(curElem); curElem = nextElem; } @@ -208,7 +211,9 @@ } else { - newBucket = new (fMemoryManager) ValueHashTableBucketElem<TVal>(key, valueToAdopt, fBucketList[hashVal]); + newBucket = + new (fMemoryManager->allocate(sizeof(ValueHashTableBucketElem<TVal>))) + ValueHashTableBucketElem<TVal>(key, valueToAdopt, fBucketList[hashVal]); fBucketList[hashVal] = newBucket; } } @@ -287,7 +292,10 @@ } // Delete the current element - delete curElem; + // delete curElem; + // destructor is empty... + // curElem->~ValueHashTableBucketElem(); + fMemoryManager->deallocate(curElem); return; } 1.13 +3 -2 xml-xerces/c/src/xercesc/util/ValueHashTableOf.hpp Index: ValueHashTableOf.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/ValueHashTableOf.hpp,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- ValueHashTableOf.hpp 8 Sep 2004 13:56:23 -0000 1.12 +++ ValueHashTableOf.hpp 19 Nov 2004 00:50:22 -0000 1.13 @@ -45,13 +45,14 @@ // This should really be a nested class, but some of the compilers we // have to support cannot deal with that! // -template <class TVal> struct ValueHashTableBucketElem : public XMemory +template <class TVal> struct ValueHashTableBucketElem { ValueHashTableBucketElem(void* key, const TVal& value, ValueHashTableBucketElem<TVal>* next) : fData(value), fNext(next), fKey(key) { } ValueHashTableBucketElem(){}; + ~ValueHashTableBucketElem(){}; TVal fData; ValueHashTableBucketElem<TVal>* fNext;
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]