Author: cargilld
Date: Fri Apr 28 12:59:01 2006
New Revision: 397996
URL: http://svn.apache.org/viewcvs?rev=397996&view=rev
Log:
Performance fix, don't use QName as colon location is already available.
Modified:
xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp
Modified: xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp
URL:
http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp?rev=397996&r1=397995&r2=397996&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp (original)
+++ xerces/c/trunk/src/xercesc/internal/SGXMLScanner.cpp Fri Apr 28 12:59:01
2006
@@ -3451,23 +3451,29 @@
XMLBufBid bbXsi(&fBufMgr);
XMLBuffer& fXsiType = bbXsi.getBuffer();
- QName attName(fMemoryManager);
-
for (index = 0; index < attCount; index++)
{
// each attribute has the prefix:suffix="value"
const KVStringPair* curPair = fRawAttrList->elementAt(index);
const XMLCh* rawPtr = curPair->getKey();
+ const XMLCh* prefPtr;
+
+ int colonInd = fRawAttrColonList[index];
- attName.setName(rawPtr, fEmptyNamespaceId);
- const XMLCh* prefPtr = attName.getPrefix();
+ if (colonInd != -1) {
+ fURIBuf.set(rawPtr, colonInd);
+ prefPtr = fURIBuf.getRawBuffer();
+ }
+ else {
+ prefPtr = XMLUni::fgZeroLenString;
+ }
// if schema URI has been seen, scan for the schema location and
uri
// and resolve the schema grammar; or scan for schema type
if (resolvePrefix(prefPtr, ElemStack::Mode_Attribute) ==
fSchemaNamespaceId) {
const XMLCh* valuePtr = curPair->getValue();
- const XMLCh* suffPtr = attName.getLocalPart();
+ const XMLCh* suffPtr = &rawPtr[colonInd + 1];
if (XMLString::equals(suffPtr,
SchemaSymbols::fgXSI_SCHEMALOCACTION))
parseSchemaLocation(valuePtr);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]