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]

Reply via email to