From 2785d190818bba219fc2aaeafa493ccff07d174a Mon Sep 17 00:00:00 2001 From: "peterv%netscape.com" Date: Wed, 22 Jan 2003 00:04:08 +0000 Subject: [PATCH] Fix for bug 74786 (String cleanup). Non-copying tokenizer. r=Pike, sr=jst. git-svn-id: svn://10.0.0.236/trunk@136765 18797224-902f-48f8-a5cc-f745e15eee43 --- .../extensions/transformiix/build/Makefile.in | 1 - .../transformiix/macbuild/transformiix.xml | 30 ------------------ .../transformiix/source/base/Makefile.in | 1 - .../transformiix/source/lib/Makefile.in | 1 - .../source/xpath/NodeSetFunctionCall.cpp | 14 ++++----- .../source/xslt/ProcessorState.cpp | 7 ++--- .../source/xslt/XSLTProcessor.cpp | 31 ++++--------------- 7 files changed, 16 insertions(+), 69 deletions(-) diff --git a/mozilla/extensions/transformiix/build/Makefile.in b/mozilla/extensions/transformiix/build/Makefile.in index 7e85febff5d..274a5304474 100644 --- a/mozilla/extensions/transformiix/build/Makefile.in +++ b/mozilla/extensions/transformiix/build/Makefile.in @@ -59,7 +59,6 @@ LOBJS = ../source/base/Double.$(OBJ_SUFFIX) \ ../source/base/NamedMap.$(OBJ_SUFFIX) \ ../source/base/SimpleErrorObserver.$(OBJ_SUFFIX) \ ../source/base/Stack.$(OBJ_SUFFIX) \ - ../source/base/Tokenizer.$(OBJ_SUFFIX) \ ../source/base/txAtoms.$(OBJ_SUFFIX) \ ../source/base/txExpandedNameMap.$(OBJ_SUFFIX) \ ../source/base/txURIUtils.$(OBJ_SUFFIX) \ diff --git a/mozilla/extensions/transformiix/macbuild/transformiix.xml b/mozilla/extensions/transformiix/macbuild/transformiix.xml index 9bd04f3c5e9..db3ebc1603c 100644 --- a/mozilla/extensions/transformiix/macbuild/transformiix.xml +++ b/mozilla/extensions/transformiix/macbuild/transformiix.xml @@ -1062,13 +1062,6 @@ Text - - Name - Tokenizer.cpp - MacOS - Text - - Name NamedMap.cpp @@ -1624,11 +1617,6 @@ NodeSet.cpp MacOS - - Name - Tokenizer.cpp - MacOS - Name NamedMap.cpp @@ -2934,13 +2922,6 @@ Text - - Name - Tokenizer.cpp - MacOS - Text - - Name NamedMap.cpp @@ -3512,11 +3493,6 @@ NodeSet.cpp MacOS - - Name - Tokenizer.cpp - MacOS - Name NamedMap.cpp @@ -3955,12 +3931,6 @@ Stack.cpp MacOS - - transformiixDebug.shlb - Name - Tokenizer.cpp - MacOS - transformiixDebug.shlb Name diff --git a/mozilla/extensions/transformiix/source/base/Makefile.in b/mozilla/extensions/transformiix/source/base/Makefile.in index 21906b8ee49..ce682f35a41 100644 --- a/mozilla/extensions/transformiix/source/base/Makefile.in +++ b/mozilla/extensions/transformiix/source/base/Makefile.in @@ -48,7 +48,6 @@ CPPSRCS = Double.cpp \ NamedMap.cpp \ SimpleErrorObserver.cpp \ Stack.cpp \ - Tokenizer.cpp \ txAtoms.cpp \ txExpandedNameMap.cpp \ txURIUtils.cpp diff --git a/mozilla/extensions/transformiix/source/lib/Makefile.in b/mozilla/extensions/transformiix/source/lib/Makefile.in index 08bf87ca5a9..6ffcbbcfd01 100644 --- a/mozilla/extensions/transformiix/source/lib/Makefile.in +++ b/mozilla/extensions/transformiix/source/lib/Makefile.in @@ -40,7 +40,6 @@ OBJS = ../base/Double.$(OBJ_SUFFIX) \ ../base/NamedMap.$(OBJ_SUFFIX) \ ../base/SimpleErrorObserver.$(OBJ_SUFFIX) \ ../base/Stack.$(OBJ_SUFFIX) \ - ../base/Tokenizer.$(OBJ_SUFFIX) \ ../base/txAtoms.$(OBJ_SUFFIX) \ ../base/txExpandedNameMap.$(OBJ_SUFFIX) \ ../base/txStringUtils.$(OBJ_SUFFIX) \ diff --git a/mozilla/extensions/transformiix/source/xpath/NodeSetFunctionCall.cpp b/mozilla/extensions/transformiix/source/xpath/NodeSetFunctionCall.cpp index 29826a82462..596c45c30ac 100644 --- a/mozilla/extensions/transformiix/source/xpath/NodeSetFunctionCall.cpp +++ b/mozilla/extensions/transformiix/source/xpath/NodeSetFunctionCall.cpp @@ -34,9 +34,9 @@ #include "FunctionLib.h" #include "NodeSet.h" -#include "Tokenizer.h" #include "txAtoms.h" #include "txIXPathContext.h" +#include "txTokenizer.h" #include "XMLDOMUtils.h" /* @@ -98,24 +98,24 @@ ExprResult* NodeSetFunctionCall::evaluate(txIEvalContext* aContext) { NodeSet* nodes = (NodeSet*)exprResult; int i; for (i = 0; i < nodes->size(); i++) { - nsAutoString idList, id; + nsAutoString idList; XMLDOMUtils::getNodeValue(nodes->get(i), idList); txTokenizer tokenizer(idList); while (tokenizer.hasMoreTokens()) { - tokenizer.nextToken(id); - Node* idNode = contextDoc->getElementById(id); + Node* idNode = + contextDoc->getElementById(tokenizer.nextToken()); if (idNode) resultSet->add(idNode); } } } else { - nsAutoString idList, id; + nsAutoString idList; exprResult->stringValue(idList); txTokenizer tokenizer(idList); while (tokenizer.hasMoreTokens()) { - tokenizer.nextToken(id); - Node* idNode = contextDoc->getElementById(id); + Node* idNode = + contextDoc->getElementById(tokenizer.nextToken()); if (idNode) resultSet->add(idNode); } diff --git a/mozilla/extensions/transformiix/source/xslt/ProcessorState.cpp b/mozilla/extensions/transformiix/source/xslt/ProcessorState.cpp index b518b682107..50a1f557230 100644 --- a/mozilla/extensions/transformiix/source/xslt/ProcessorState.cpp +++ b/mozilla/extensions/transformiix/source/xslt/ProcessorState.cpp @@ -38,12 +38,12 @@ #include "txURIUtils.h" #include "XMLUtils.h" #include "XMLDOMUtils.h" -#include "Tokenizer.h" #include "ExprResult.h" #include "XMLParser.h" #include "TxLog.h" #include "txAtoms.h" #include "txSingleNodeContext.h" +#include "txTokenizer.h" #include "txVariableMap.h" #include "XSLTProcessor.h" @@ -752,10 +752,9 @@ void ProcessorState::shouldStripSpace(const nsAString& aNames, ImportFrame* aImportFrame) { //-- split names on whitespace - txTokenizer tokenizer(aNames); - nsAutoString name; + txTokenizer tokenizer(PromiseFlatString(aNames)); while (tokenizer.hasMoreTokens()) { - tokenizer.nextToken(name); + const nsAString& name = tokenizer.nextToken(); PRInt32 aNSID = kNameSpaceID_None; nsCOMPtr prefix; XMLUtils::getPrefix(name, getter_AddRefs(prefix)); diff --git a/mozilla/extensions/transformiix/source/xslt/XSLTProcessor.cpp b/mozilla/extensions/transformiix/source/xslt/XSLTProcessor.cpp index 7daa483aef7..eedaaa802b8 100644 --- a/mozilla/extensions/transformiix/source/xslt/XSLTProcessor.cpp +++ b/mozilla/extensions/transformiix/source/xslt/XSLTProcessor.cpp @@ -42,7 +42,6 @@ */ #include "XSLTProcessor.h" -#include "Tokenizer.h" #include "txAtoms.h" #include "TxLog.h" #include "txNodeSetContext.h" @@ -50,6 +49,7 @@ #include "txRtfHandler.h" #include "txStringUtils.h" #include "txTextHandler.h" +#include "txTokenizer.h" #include "txURIUtils.h" #include "txVariableMap.h" #include "txXSLTNumber.h" @@ -880,11 +880,9 @@ txXSLTProcessor::processAttributeSets(Element* aElement, // Split names txTokenizer tokenizer(names); - nsAutoString nameStr; while (tokenizer.hasMoreTokens()) { - tokenizer.nextToken(nameStr); txExpandedName name; - rv = name.init(nameStr, aElement, MB_FALSE); + rv = name.init(tokenizer.nextToken(), aElement, MB_FALSE); if (NS_FAILED(rv)) { aPs->receiveError(NS_LITERAL_STRING("missing or malformed name in use-attribute-sets")); return; @@ -1458,28 +1456,11 @@ txXSLTProcessor::processTopLevel(Element* aStylesheet, if (element->getAttr(txXSLTAtoms::cdataSectionElements, kNameSpaceID_None, attValue)) { txTokenizer tokens(attValue); - nsAutoString token; while (tokens.hasMoreTokens()) { - tokens.nextToken(token); - if (!XMLUtils::isValidQName(token)) { - break; - } - - nsCOMPtr namePart; - XMLUtils::getPrefix(token, getter_AddRefs(namePart)); - PRInt32 nsID = element->lookupNamespaceID(namePart); - if (nsID == kNameSpaceID_Unknown) { - // XXX ErrorReport: unknown prefix - break; - } - XMLUtils::getLocalPart(token, getter_AddRefs(namePart)); - if (!namePart) { - // XXX ErrorReport: out of memory - break; - } - txExpandedName* qname = new txExpandedName(nsID, namePart); - if (!qname) { - // XXX ErrorReport: out of memory + txExpandedName* qname = new txExpandedName(); + if (!qname || NS_FAILED(qname->init(tokens.nextToken(), + element, PR_FALSE))) { + // XXX ErrorReport break; } format.mCDATASectionElements.add(qname);