cargilld 2004/12/13 18:09:21
Modified: c/src/xercesc/util XMLString.cpp XMLString.hpp
Log:
Performance update from Christian Will.
Revision Changes Path
1.40 +1 -24 xml-xerces/c/src/xercesc/util/XMLString.cpp
Index: XMLString.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLString.cpp,v
retrieving revision 1.39
retrieving revision 1.40
diff -u -r1.39 -r1.40
--- XMLString.cpp 6 Dec 2004 10:47:01 -0000 1.39
+++ XMLString.cpp 14 Dec 2004 02:09:20 -0000 1.40
@@ -1096,29 +1096,6 @@
return (*srcPtr == 0);
}
-
-unsigned int XMLString::hash( const XMLCh* const tohash
- , const unsigned int hashModulus
- , MemoryManager* const)
-{
- assert(hashModulus);
-
- unsigned int hashVal = 0;
- if (tohash) {
- const XMLCh* curCh = tohash;
- while (*curCh)
- {
- unsigned int top = hashVal >> 24;
- hashVal += (hashVal * 37) + top + (unsigned int)(*curCh);
- curCh++;
- }
- }
-
- // Divide by modulus
- return hashVal % hashModulus;
-}
-
-
const XMLCh* XMLString::findAny(const XMLCh* const toSearch
, const XMLCh* const searchList)
{
1.30 +27 -0 xml-xerces/c/src/xercesc/util/XMLString.hpp
Index: XMLString.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLString.hpp,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -r1.29 -r1.30
--- XMLString.hpp 6 Dec 2004 10:47:01 -0000 1.29
+++ XMLString.hpp 14 Dec 2004 02:09:20 -0000 1.30
@@ -16,6 +16,9 @@
/*
* $Log$
+ * Revision 1.30 2004/12/14 02:09:20 cargilld
+ * Performance update from Christian Will.
+ *
* Revision 1.29 2004/12/06 10:47:01 amassari
* Added XMLString::release(void**, MemoryManager*) [jira# 1301]
*
@@ -235,6 +238,7 @@
#include <xercesc/framework/XMLBuffer.hpp>
#include <xercesc/framework/MemoryManager.hpp>
#include <string.h>
+#include <assert.h>
XERCES_CPP_NAMESPACE_BEGIN
@@ -1731,6 +1735,29 @@
inline int XMLString::lastIndexOf(const XMLCh* const toSearch, const XMLCh
ch)
{
return XMLString::lastIndexOf(ch, toSearch, stringLen(toSearch));
+}
+
+inline unsigned int XMLString::hash( const XMLCh* const tohash
+ , const unsigned int hashModulus
+ , MemoryManager* const)
+{
+ assert(hashModulus);
+
+ if (tohash == 0 || *tohash == 0)
+ return 0;
+
+ const XMLCh* curCh = tohash;
+ unsigned int hashVal = (unsigned int)(*curCh);
+ curCh++;
+
+ while (*curCh)
+ {
+ hashVal = (hashVal * 38) + (hashVal >> 24) + (unsigned int)(*curCh);
+ curCh++;
+ }
+
+ // Divide by modulus
+ return hashVal % hashModulus;
}
XERCES_CPP_NAMESPACE_END
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]