dbertoni 02/05/05 22:27:00 Modified: c/src/XPath XalanQName.hpp XalanQNameByValue.cpp XObjectResultTreeFragProxyText.cpp XPathProcessorImpl.cpp Log: More efficient string processing. Revision Changes Path 1.4 +1 -1 xml-xalan/c/src/XPath/XalanQName.hpp Index: XalanQName.hpp =================================================================== RCS file: /home/cvs/xml-xalan/c/src/XPath/XalanQName.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- XalanQName.hpp 2 Apr 2002 06:11:31 -0000 1.3 +++ XalanQName.hpp 6 May 2002 05:26:59 -0000 1.4 @@ -170,7 +170,7 @@ * @return true if namespace and local part are both empty */ bool - equals(const XalanQName& theRHS) const + equals(const XalanQName& theRHS) const { // Note that we do not use our member variables here. See // class QNameReference for details... 1.6 +4 -4 xml-xalan/c/src/XPath/XalanQNameByValue.cpp Index: XalanQNameByValue.cpp =================================================================== RCS file: /home/cvs/xml-xalan/c/src/XPath/XalanQNameByValue.cpp,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- XalanQNameByValue.cpp 12 Mar 2002 05:39:27 -0000 1.5 +++ XalanQNameByValue.cpp 6 May 2002 05:26:59 -0000 1.6 @@ -222,7 +222,7 @@ } else if(indexOfNSSep < length(qname)) { - const XalanDOMString prefix = substring(qname, 0, indexOfNSSep); + const XalanDOMString prefix(qname, indexOfNSSep); if(::equals(prefix, DOMServices::s_XMLNamespace)) return; @@ -239,7 +239,7 @@ m_namespace = *theNamespace; } - m_localpart = substring(qname, indexOfNSSep + 1); + m_localpart.assign(qname + indexOfNSSep + 1); } else { @@ -275,7 +275,7 @@ } else { - const XalanDOMString prefix = substring(qname, 0, indexOfNSSep); + const XalanDOMString prefix(qname, 0, indexOfNSSep); if(::equals(prefix, DOMServices::s_XMLString)) { @@ -314,6 +314,6 @@ locator); } - m_localpart = substring(qname, indexOfNSSep + 1); + m_localpart.assign(qname, indexOfNSSep + 1, theLength - (indexOfNSSep + 1)); } } 1.3 +1 -1 xml-xalan/c/src/XPath/XObjectResultTreeFragProxyText.cpp Index: XObjectResultTreeFragProxyText.cpp =================================================================== RCS file: /home/cvs/xml-xalan/c/src/XPath/XObjectResultTreeFragProxyText.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- XObjectResultTreeFragProxyText.cpp 23 Feb 2002 03:26:18 -0000 1.2 +++ XObjectResultTreeFragProxyText.cpp 6 May 2002 05:26:59 -0000 1.3 @@ -346,7 +346,7 @@ unsigned int offset, unsigned int count) const { - return substring(m_value.str(), offset, count); + return m_value.str().substr(offset, count); } 1.54 +41 -17 xml-xalan/c/src/XPath/XPathProcessorImpl.cpp Index: XPathProcessorImpl.cpp =================================================================== RCS file: /home/cvs/xml-xalan/c/src/XPath/XPathProcessorImpl.cpp,v retrieving revision 1.53 retrieving revision 1.54 diff -u -r1.53 -r1.54 --- XPathProcessorImpl.cpp 11 Apr 2002 05:53:43 -0000 1.53 +++ XPathProcessorImpl.cpp 6 May 2002 05:26:59 -0000 1.54 @@ -197,7 +197,7 @@ { initMatchPattern( pathObj, - substring(expression, 2), + XalanDOMString(expression, 2, expression.length() - 2), prefixResolver, locator); } @@ -237,7 +237,8 @@ // counted inside the m_patternMap. int nesting = 0; - // char[] chars = pat.toCharArray(); + XalanDOMString theToken; + for(int i = 0; i < nChars; i++) { XalanDOMChar c = charAt(pat, i); @@ -258,7 +259,9 @@ } else { - addToTokenQueue(substring(pat, startSubstring, i)); + substring(pat, theToken, startSubstring, i); + + addToTokenQueue(theToken); } } @@ -268,7 +271,10 @@ if(c == XalanUnicode::charQuoteMark) { - addToTokenQueue(substring(pat, startSubstring, i + 1)); + substring(pat, theToken, startSubstring, i + 1); + + addToTokenQueue(theToken); + startSubstring = -1; } else @@ -291,7 +297,9 @@ } else { - addToTokenQueue(substring(pat, startSubstring, i)); + substring(pat, theToken, startSubstring, i); + + addToTokenQueue(theToken); } } @@ -301,7 +309,10 @@ if(c == XalanUnicode::charApostrophe) { - addToTokenQueue(substring(pat, startSubstring, i + 1)); + substring(pat, theToken, startSubstring, i + 1); + + addToTokenQueue(theToken); + startSubstring = -1; } else @@ -327,7 +338,9 @@ } else { - addToTokenQueue(substring(pat, startSubstring, i)); + substring(pat, theToken, startSubstring, i); + + addToTokenQueue(theToken); } startSubstring = -1; @@ -379,7 +392,9 @@ } else { - addToTokenQueue(substring(pat, startSubstring, i)); + substring(pat, theToken, startSubstring, i); + + addToTokenQueue(theToken); } startSubstring = -1; @@ -416,7 +431,9 @@ nesting++; } - addToTokenQueue(substring(pat, i, i + 1)); + substring(pat, theToken, i, i + 1); + + addToTokenQueue(theToken); } break; @@ -428,7 +445,9 @@ { if (startSubstring < i - 1) { - addToTokenQueue(substring(pat, startSubstring, i - 1)); + substring(pat, theToken, startSubstring, i - 1); + + addToTokenQueue(theToken); } } @@ -436,7 +455,9 @@ startSubstring = -1; posOfNSSep = -1; - addToTokenQueue(substring(pat, i - 1, i + 1)); + substring(pat, theToken, i - 1, i + 1); + + addToTokenQueue(theToken); break; } else @@ -484,7 +505,9 @@ } } - addToTokenQueue(substring(pat, startSubstring, i + 1)); + substring(pat, theToken, startSubstring, i + 1); + + addToTokenQueue(theToken); startSubstring = -1; } @@ -503,7 +526,9 @@ } else { - addToTokenQueue(substring(pat, startSubstring, nChars)); + substring(pat, theToken, startSubstring, nChars); + + addToTokenQueue(theToken); } } @@ -634,8 +659,7 @@ { assert(m_prefixResolver != 0); - const XalanDOMString prefix = - substring(pat, startSubstring, posOfNSSep); + const XalanDOMString prefix(pat, startSubstring, posOfNSSep - startSubstring); if (XalanQName::isValidNCName(prefix) == false) { @@ -672,7 +696,7 @@ // here... if(posOfNSSep + 1 < posOfScan) { - const XalanDOMString s = substring(pat, posOfNSSep + 1, posOfScan); + const XalanDOMString s(pat, posOfNSSep + 1, posOfScan - (posOfNSSep + 1)); assert(length(s) > 0); @@ -2222,7 +2246,7 @@ if(isCurrentLiteral() == true) { - const XalanDOMString theArgument = substring(m_token, 1, length(m_token) - 1); + const XalanDOMString theArgument(m_token, 1, length(m_token) - 2); m_expression->pushArgumentOnOpCodeMap(theArgument);
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]