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