You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ca...@apache.org on 2004/12/13 17:34:00 UTC
cvs commit: xml-xerces/c/src/xercesc/util XMLUTF8Transcoder.cpp
cargilld 2004/12/13 08:34:00
Modified: c/src/xercesc/util XMLUTF8Transcoder.cpp
Log:
Performance improvement from Christian Will.
Revision Changes Path
1.11 +13 -4 xml-xerces/c/src/xercesc/util/XMLUTF8Transcoder.cpp
Index: XMLUTF8Transcoder.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLUTF8Transcoder.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- XMLUTF8Transcoder.cpp 8 Sep 2004 13:56:24 -0000 1.10
+++ XMLUTF8Transcoder.cpp 13 Dec 2004 16:34:00 -0000 1.11
@@ -149,9 +149,18 @@
// Special-case ASCII, which is a leading byte value of <= 127
if (*srcPtr <= 127)
{
- *outPtr++ = XMLCh(*srcPtr++);
- *sizePtr++ = 1;
- continue;
+ // Handle ASCII in groups instead of single character at a time.
+ const XMLByte* srcPtr_save = srcPtr;
+ do
+ {
+ *outPtr++ = XMLCh(*srcPtr++);
+ } while (*srcPtr <= 127 &&
+ srcPtr != srcEnd &&
+ outPtr != outEnd );
+ memset(sizePtr,1,srcPtr - srcPtr_save);
+ sizePtr += srcPtr - srcPtr_save;
+ if (srcPtr == srcEnd || outPtr == outEnd)
+ break;
}
// See how many trailing src bytes this sequence is going to require
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org