You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by am...@apache.org on 2007/03/27 21:17:02 UTC
svn commit: r523039 - in /xerces/c/branches/xerces-2.7/src/xercesc:
internal/XMLReader.cpp internal/XMLReader.hpp internal/XMLScanner.cpp
util/XMLString.hpp
Author: amassari
Date: Tue Mar 27 12:17:01 2007
New Revision: 523039
URL: http://svn.apache.org/viewvc?view=rev&rev=523039
Log:
Performance improvements
Modified:
xerces/c/branches/xerces-2.7/src/xercesc/internal/XMLReader.cpp
xerces/c/branches/xerces-2.7/src/xercesc/internal/XMLReader.hpp
xerces/c/branches/xerces-2.7/src/xercesc/internal/XMLScanner.cpp
xerces/c/branches/xerces-2.7/src/xercesc/util/XMLString.hpp
Modified: xerces/c/branches/xerces-2.7/src/xercesc/internal/XMLReader.cpp
URL: http://svn.apache.org/viewvc/xerces/c/branches/xerces-2.7/src/xercesc/internal/XMLReader.cpp?view=diff&rev=523039&r1=523038&r2=523039
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/internal/XMLReader.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/internal/XMLReader.cpp Tue Mar 27 12:17:01 2007
@@ -1120,7 +1120,7 @@
// dirty comparison straight to its buffer with no requirement to unget
// if it fails.
//
- if (XMLString::compareNString(&fCharBuf[fCharIndex], toSkip, srcLen))
+ if (memcmp(&fCharBuf[fCharIndex], toSkip, srcLen*sizeof(XMLCh)))
return false;
//
@@ -1136,7 +1136,7 @@
if (charsLeft == 0)
return false; // error situation
}
- if (XMLString::compareNString(&fCharBuf[fCharIndex], toSkip, charsLeft))
+ if (memcmp(&fCharBuf[fCharIndex], toSkip, charsLeft*sizeof(XMLCh)))
return false;
fCharIndex += charsLeft;
@@ -1151,7 +1151,7 @@
return false; // error situation
if (charsLeft > remainingLen)
charsLeft = remainingLen;
- if (XMLString::compareNString(&fCharBuf[fCharIndex], toSkip+offset, charsLeft))
+ if (memcmp(&fCharBuf[fCharIndex], toSkip+offset, charsLeft*sizeof(XMLCh)))
return false;
offset += charsLeft;
remainingLen -= charsLeft;
@@ -1205,7 +1205,7 @@
// dirty comparison straight to its buffer with no requirement to unget
// if it fails.
//
- if (XMLString::compareNString(&fCharBuf[fCharIndex], toPeek, srcLen))
+ if (memcmp(&fCharBuf[fCharIndex], toPeek, srcLen*sizeof(XMLCh)))
return false;
return true;
@@ -1848,8 +1848,6 @@
{
fCurCol++;
}
-
- return;
}
XERCES_CPP_NAMESPACE_END
Modified: xerces/c/branches/xerces-2.7/src/xercesc/internal/XMLReader.hpp
URL: http://svn.apache.org/viewvc/xerces/c/branches/xerces-2.7/src/xercesc/internal/XMLReader.hpp?view=diff&rev=523039&r1=523038&r2=523039
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/internal/XMLReader.hpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/internal/XMLReader.hpp Tue Mar 27 12:17:01 2007
@@ -770,7 +770,7 @@
// normal char get method in regards to newline normalization, though
// its not as complicated as the actual character getting method's.
//
- if ((chGotten == chCR || ((chGotten == chNEL || chGotten == chLineSeparator) && fNEL))
+ if ((chGotten == chCR || (fNEL && (chGotten == chNEL || chGotten == chLineSeparator)))
&& (fSource == Source_External))
chGotten = chLF;
Modified: xerces/c/branches/xerces-2.7/src/xercesc/internal/XMLScanner.cpp
URL: http://svn.apache.org/viewvc/xerces/c/branches/xerces-2.7/src/xercesc/internal/XMLScanner.cpp?view=diff&rev=523039&r1=523038&r2=523039
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/internal/XMLScanner.cpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/internal/XMLScanner.cpp Tue Mar 27 12:17:01 2007
@@ -1945,6 +1945,11 @@
// in order to catch the scenario where the current entity ended at
// the > of some markup.
XMLCh nextCh;
+
+ // avoid setting up the ThrowEOEJanitor if we know that we have data in the current reader
+ if(fReaderMgr.getCurrentReader() && fReaderMgr.getCurrentReader()->charsLeftInBuffer()>0)
+ nextCh = fReaderMgr.peekNextChar();
+ else
{
ThrowEOEJanitor janMgr(&fReaderMgr, true);
nextCh = fReaderMgr.peekNextChar();
Modified: xerces/c/branches/xerces-2.7/src/xercesc/util/XMLString.hpp
URL: http://svn.apache.org/viewvc/xerces/c/branches/xerces-2.7/src/xercesc/util/XMLString.hpp?view=diff&rev=523039&r1=523038&r2=523039
==============================================================================
--- xerces/c/branches/xerces-2.7/src/xercesc/util/XMLString.hpp (original)
+++ xerces/c/branches/xerces-2.7/src/xercesc/util/XMLString.hpp Tue Mar 27 12:17:01 2007
@@ -1587,14 +1587,10 @@
return 0;
const XMLCh* curCh = tohash;
- unsigned int hashVal = (unsigned int)(*curCh);
- curCh++;
+ unsigned int hashVal = (unsigned int)(*curCh++);
while (*curCh)
- {
- hashVal = (hashVal * 38) + (hashVal >> 24) + (unsigned int)(*curCh);
- curCh++;
- }
+ hashVal = (hashVal * 38) + (hashVal >> 24) + (unsigned int)(*curCh++);
// Divide by modulus
return hashVal % hashModulus;
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@xerces.apache.org
For additional commands, e-mail: commits-help@xerces.apache.org