diff --git a/src/xercesc/dom/impl/DOMDeepNodeListPool.c b/src/xercesc/dom/impl/DOMDeepNodeListPool.c index 3037f75a54f38603e40c5f958fc13b90f34b7955..5d6f597605722b70e1ca8655fe3ea6683faea9f8 100644 --- a/src/xercesc/dom/impl/DOMDeepNodeListPool.c +++ b/src/xercesc/dom/impl/DOMDeepNodeListPool.c @@ -27,6 +27,8 @@ #include <xercesc/dom/impl/DOMDeepNodeListPool.hpp> #endif +#include <assert.h> + XERCES_CPP_NAMESPACE_BEGIN @@ -362,8 +364,7 @@ findBucketElem(const void* const key1, const XMLCh* const key2, const XMLCh* con { // Hash the key hashVal = fHash->getHashVal(key1, fHashModulus, fMemoryManager); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); // Search that bucket for the key DOMDeepNodeListPoolTableBucketElem<TVal>* curElem = fBucketList[hashVal]; @@ -398,9 +399,8 @@ findBucketElem(const void* const key1, const XMLCh* const key2, const XMLCh* con { // Hash the key hashVal = fHash->getHashVal(key1, fHashModulus, fMemoryManager); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); - + assert(hashVal < fHashModulus); + // Search that bucket for the key const DOMDeepNodeListPoolTableBucketElem<TVal>* curElem = fBucketList[hashVal]; while (curElem) diff --git a/src/xercesc/util/NameIdPool.c b/src/xercesc/util/NameIdPool.c index 04f28b4c28f44ccf46d1a6b326a80310890f75d2..873f14cad85dc82aaee5ca85cd0773630dab8086 100644 --- a/src/xercesc/util/NameIdPool.c +++ b/src/xercesc/util/NameIdPool.c @@ -16,6 +16,9 @@ /** * $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.9 2004/09/08 13:56:22 peiyongz * Apache License Version 2.0 * @@ -70,6 +73,7 @@ #include <xercesc/util/IllegalArgumentException.hpp> #include <xercesc/util/NoSuchElementException.hpp> #include <xercesc/util/RuntimeException.hpp> +#include <assert.h> XERCES_CPP_NAMESPACE_BEGIN @@ -300,8 +304,7 @@ findBucketElem(const XMLCh* const key, unsigned int& hashVal) // Hash the key hashVal = XMLString::hash(key, fHashModulus, fMemoryManager); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Pool_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); // Search that bucket for the key NameIdPoolBucketElem<TElem>* curElem = fBucketList[hashVal]; @@ -320,9 +323,7 @@ findBucketElem(const XMLCh* const key, unsigned int& hashVal) const { // Hash the key hashVal = XMLString::hash(key, fHashModulus, fMemoryManager); - - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::Pool_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); // Search that bucket for the key const NameIdPoolBucketElem<TElem>* curElem = fBucketList[hashVal]; diff --git a/src/xercesc/util/RefHash2KeysTableOf.c b/src/xercesc/util/RefHash2KeysTableOf.c index 81d338eeaadf60e8abfc97aac0eb1ffd1c907a8d..9ba5c40bc268ea60dd5df4acf824351a5faafeea 100644 --- a/src/xercesc/util/RefHash2KeysTableOf.c +++ b/src/xercesc/util/RefHash2KeysTableOf.c @@ -16,6 +16,9 @@ /** * $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.11 2004/09/22 11:14:22 amassari * Reorder initialization of variables in constructor * @@ -76,6 +79,7 @@ #endif #include <xercesc/util/NullPointerException.hpp> +#include <assert.h> XERCES_CPP_NAMESPACE_BEGIN @@ -218,9 +222,7 @@ template <class TVal> void RefHash2KeysTableOf<TVal>::transferElement(const void { // Hash the key unsigned int hashVal = fHash->getHashVal(key1, fHashModulus); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); - + assert(hashVal < fHashModulus); // // Search the given bucket for this key. Keep up with the previous // element so we can patch around it. @@ -337,8 +339,7 @@ findBucketElem(const void* const key1, const int key2, unsigned int& hashVal) { // Hash the key hashVal = fHash->getHashVal(key1, fHashModulus, fMemoryManager); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); // Search that bucket for the key RefHash2KeysTableBucketElem<TVal>* curElem = fBucketList[hashVal]; @@ -357,8 +358,7 @@ findBucketElem(const void* const key1, const int key2, unsigned int& hashVal) co { // Hash the key hashVal = fHash->getHashVal(key1, fHashModulus, fMemoryManager); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); // Search that bucket for the key const RefHash2KeysTableBucketElem<TVal>* curElem = fBucketList[hashVal]; @@ -378,8 +378,7 @@ removeBucketElem(const void* const key1, const int key2, unsigned int& hashVal) { // Hash the key hashVal = fHash->getHashVal(key1, fHashModulus); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); // // Search the given bucket for this key. Keep up with the previous diff --git a/src/xercesc/util/RefHash3KeysIdPool.c b/src/xercesc/util/RefHash3KeysIdPool.c index 741d024d1adbadfc5ec21e8e177ccdfbc04122a1..9fb9294e15d0c697b6354e22deb822e42b4ca5a2 100644 --- a/src/xercesc/util/RefHash3KeysIdPool.c +++ b/src/xercesc/util/RefHash3KeysIdPool.c @@ -16,6 +16,9 @@ /** * $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.13 2004/09/08 13:56:22 peiyongz * Apache License Version 2.0 * @@ -79,6 +82,7 @@ #endif #include <xercesc/util/NullPointerException.hpp> +#include <assert.h> XERCES_CPP_NAMESPACE_BEGIN @@ -390,8 +394,7 @@ findBucketElem(const void* const key1, const int key2, const int key3, unsigned { // Hash the key hashVal = fHash->getHashVal(key1, fHashModulus, fMemoryManager); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); // Search that bucket for the key RefHash3KeysTableBucketElem<TVal>* curElem = fBucketList[hashVal]; @@ -410,8 +413,7 @@ findBucketElem(const void* const key1, const int key2, const int key3, unsigned { // Hash the key hashVal = fHash->getHashVal(key1, fHashModulus); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); // Search that bucket for the key const RefHash3KeysTableBucketElem<TVal>* curElem = fBucketList[hashVal]; diff --git a/src/xercesc/util/RefHashTableOf.c b/src/xercesc/util/RefHashTableOf.c index fccb911bf5ee94632687dcbd0d3409bf91d710ad..1c49592b119dedae373a444ab9b2c3508703ad24 100644 --- a/src/xercesc/util/RefHashTableOf.c +++ b/src/xercesc/util/RefHashTableOf.c @@ -16,6 +16,9 @@ /** * $Log$ + * 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. + * * Revision 1.16 2004/09/08 13:56:23 peiyongz * Apache License Version 2.0 * @@ -113,6 +116,7 @@ #endif #include <xercesc/util/NullPointerException.hpp> +#include <assert.h> XERCES_CPP_NAMESPACE_BEGIN @@ -271,8 +275,7 @@ orphanKey(const void* const key) // Hash the key TVal* retVal = 0; unsigned int hashVal = fHash->getHashVal(key, fHashModulus, fMemoryManager); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); // // Search the given bucket for this key. Keep up with the previous @@ -476,8 +479,7 @@ template <class TVal> void RefHashTableOf<TVal>::rehash() nextElem = curElem->fNext; unsigned int hashVal = fHash->getHashVal(curElem->fKey, fHashModulus, fMemoryManager); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); RefHashTableBucketElem<TVal>* newHeadElem = fBucketList[hashVal]; @@ -498,8 +500,7 @@ findBucketElem(const void* const key, unsigned int& hashVal) { // Hash the key hashVal = fHash->getHashVal(key, fHashModulus, fMemoryManager); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); // Search that bucket for the key RefHashTableBucketElem<TVal>* curElem = fBucketList[hashVal]; @@ -518,8 +519,7 @@ findBucketElem(const void* const key, unsigned int& hashVal) const { // Hash the key hashVal = fHash->getHashVal(key, fHashModulus, fMemoryManager); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); // Search that bucket for the key const RefHashTableBucketElem<TVal>* curElem = fBucketList[hashVal]; @@ -539,8 +539,7 @@ removeBucketElem(const void* const key, unsigned int& hashVal) { // Hash the key hashVal = fHash->getHashVal(key, fHashModulus, fMemoryManager); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); // // Search the given bucket for this key. Keep up with the previous diff --git a/src/xercesc/util/ValueHashTableOf.c b/src/xercesc/util/ValueHashTableOf.c index 3134301063026bde1e3d0722c948fbd282777c7c..2e9ce632584f40d6e400d2518add7692ae47589d 100644 --- a/src/xercesc/util/ValueHashTableOf.c +++ b/src/xercesc/util/ValueHashTableOf.c @@ -16,6 +16,9 @@ /** * $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.9 2004/09/08 13:56:23 peiyongz * Apache License Version 2.0 * @@ -48,6 +51,7 @@ #endif #include <xercesc/util/NullPointerException.hpp> +#include <assert.h> XERCES_CPP_NAMESPACE_BEGIN @@ -219,8 +223,7 @@ findBucketElem(const void* const key, unsigned int& hashVal) { // Hash the key hashVal = fHash->getHashVal(key, fHashModulus, fMemoryManager); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); // Search that bucket for the key ValueHashTableBucketElem<TVal>* curElem = fBucketList[hashVal]; @@ -239,8 +242,7 @@ findBucketElem(const void* const key, unsigned int& hashVal) const { // Hash the key hashVal = fHash->getHashVal(key, fHashModulus, fMemoryManager); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); // Search that bucket for the key const ValueHashTableBucketElem<TVal>* curElem = fBucketList[hashVal]; @@ -260,8 +262,7 @@ removeBucketElem(const void* const key, unsigned int& hashVal) { // Hash the key hashVal = fHash->getHashVal(key, fHashModulus); - if (hashVal > fHashModulus) - ThrowXMLwithMemMgr(RuntimeException, XMLExcepts::HshTbl_BadHashFromKey, fMemoryManager); + assert(hashVal < fHashModulus); // // Search the given bucket for this key. Keep up with the previous diff --git a/src/xercesc/util/XMLString.cpp b/src/xercesc/util/XMLString.cpp index e7267be88c47cd1bdb7521929bfe4fc9da644506..32553826d2c276c6f26b3ac43b37bd8a5a9743b0 100644 --- a/src/xercesc/util/XMLString.cpp +++ b/src/xercesc/util/XMLString.cpp @@ -26,6 +26,7 @@ #include <ctype.h> #include <stdlib.h> #include <errno.h> +#include <assert.h> #include <xercesc/util/XMLString.hpp> #include <xercesc/util/ArrayIndexOutOfBoundsException.hpp> @@ -296,10 +297,9 @@ void XMLString::cut( XMLCh* const toCutFrom unsigned int XMLString::hash( const char* const tohash , const unsigned int hashModulus - , MemoryManager* const manager) + , MemoryManager* const) { - if (!hashModulus) - ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Pool_ZeroModulus, manager); + assert(hashModulus); unsigned int hashVal = 0; if (tohash) { @@ -1099,10 +1099,9 @@ bool XMLString::copyNString( XMLCh* const target unsigned int XMLString::hash( const XMLCh* const tohash , const unsigned int hashModulus - , MemoryManager* const manager) -{ - if (!hashModulus) - ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Pool_ZeroModulus, manager); + , MemoryManager* const) +{ + assert(hashModulus); unsigned int hashVal = 0; if (tohash) { @@ -1195,10 +1194,9 @@ int XMLString::patternMatch( const XMLCh* const toSearch unsigned int XMLString::hashN( const XMLCh* const tohash , const unsigned int n , const unsigned int hashModulus - , MemoryManager* const manager) + , MemoryManager* const) { - if (!hashModulus) - ThrowXMLwithMemMgr(IllegalArgumentException, XMLExcepts::Pool_ZeroModulus, manager); + assert(hashModulus); unsigned int hashVal = 0; if (tohash) {