amassari 2005/03/08 01:04:09
Modified: c/src/xercesc/util XMLString.cpp XMLString.hpp
Log:
Improve performances of XMLString::tokenizeString (jira# 1363) - patch by
Christian Will
Revision Changes Path
1.43 +10 -4 xml-xerces/c/src/xercesc/util/XMLString.cpp
Index: XMLString.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLString.cpp,v
retrieving revision 1.42
retrieving revision 1.43
diff -u -r1.42 -r1.43
--- XMLString.cpp 2 Feb 2005 09:29:48 -0000 1.42
+++ XMLString.cpp 8 Mar 2005 09:04:09 -0000 1.43
@@ -1414,9 +1414,16 @@
XMLPlatformUtils::fgTransService->lowerCase(toLowerCase);
}
+void XMLString::subString(XMLCh* const targetStr, const XMLCh* const srcStr
+ , const int startIndex, const int endIndex
+ , MemoryManager* const manager)
+{
+ subString(targetStr, srcStr, startIndex, endIndex, stringLen(srcStr),
manager);
+}
void XMLString::subString(XMLCh* const targetStr, const XMLCh* const srcStr
, const int startIndex, const int endIndex
+ , const int srcStrLength
, MemoryManager* const manager)
{
//if (startIndex < 0 || endIndex < 0)
@@ -1425,11 +1432,10 @@
if (targetStr == 0)
ThrowXMLwithMemMgr(IllegalArgumentException,
XMLExcepts::Str_ZeroSizedTargetBuf, manager);
- const int srcLen = stringLen(srcStr);
const int copySize = endIndex - startIndex;
// Make sure the start index is within the XMLString bounds
- if ( startIndex < 0 || startIndex > endIndex || endIndex > srcLen)
+ if ( startIndex < 0 || startIndex > endIndex || endIndex > srcStrLength)
ThrowXMLwithMemMgr(ArrayIndexOutOfBoundsException,
XMLExcepts::Str_StartIndexPastEnd, manager);
for (int i= startIndex; i < endIndex; i++) {
@@ -1479,7 +1485,7 @@
(skip+1-index) * sizeof(XMLCh)
);//new XMLCh[skip+1-index];
- XMLString::subString(token, tokenizeStr, index, skip, manager);
+ XMLString::subString(token, tokenizeStr, index, skip, len, manager);
tokenStack->addElement(token);
index = skip;
}
1.32 +25 -2 xml-xerces/c/src/xercesc/util/XMLString.hpp
Index: XMLString.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLString.hpp,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -r1.31 -r1.32
--- XMLString.hpp 21 Dec 2004 16:02:51 -0000 1.31
+++ XMLString.hpp 8 Mar 2005 09:04:09 -0000 1.32
@@ -16,6 +16,9 @@
/*
* $Log$
+ * Revision 1.32 2005/03/08 09:04:09 amassari
+ * Improve performances of XMLString::tokenizeString (jira# 1363) - patch by
Christian Will
+ *
* Revision 1.31 2004/12/21 16:02:51 cargilld
* Attempt to fix various apidoc problems.
*
@@ -805,7 +808,7 @@
/** @name Substring function */
//@{
- /** Create a substring of a givend string. The substring begins at the
+ /** Create a substring of a given string. The substring begins at the
* specified beginIndex and extends to the character at index
* endIndex - 1.
* @param targetStr The string to copy the chars to
@@ -823,13 +826,32 @@
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
- /** Create a substring of a givend string. The substring begins at the
+ /** Create a substring of a given string. The substring begins at the
+ * specified beginIndex and extends to the character at index
+ * endIndex - 1.
+ * @param targetStr The string to copy the chars to
+ * @param srcStr The string to copy the chars from
+ * @param startIndex beginning index, inclusive.
+ * @param endIndex the ending index, exclusive.
+ * @param manager The MemoryManager to use to allocate objects
+ */
+ static void subString
+ (
+ XMLCh* const targetStr
+ , const XMLCh* const srcStr
+ , const int startIndex
+ , const int endIndex
+ , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
+ );
+
+ /** Create a substring of a given string. The substring begins at the
* specified beginIndex and extends to the character at index
* endIndex - 1.
* @param targetStr The string to copy the chars to
* @param srcStr The string to copy the chars from
* @param startIndex beginning index, inclusive.
* @param endIndex the ending index, exclusive.
+ * @param srcStrLength the length of srcStr
* @param manager The MemoryManager to use to allocate objects
*/
static void subString
@@ -838,6 +860,7 @@
, const XMLCh* const srcStr
, const int startIndex
, const int endIndex
+ , const int srcStrLength
, MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]