gecko/dom/xslt/xslt/txBufferingHandler.cpp
Robert O'Callahan c432cee937 Bug 946065. Part 2: Move content/xslt to dom/xslt and flatten away 'public' and 'src'. r=ms2ger
--HG--
rename : content/xslt/src/base/moz.build => dom/xslt/base/moz.build
rename : content/xslt/src/base/txCore.h => dom/xslt/base/txCore.h
rename : content/xslt/src/base/txDouble.cpp => dom/xslt/base/txDouble.cpp
rename : content/xslt/src/base/txErrorObserver.h => dom/xslt/base/txErrorObserver.h
rename : content/xslt/src/base/txExpandedNameMap.cpp => dom/xslt/base/txExpandedNameMap.cpp
rename : content/xslt/src/base/txExpandedNameMap.h => dom/xslt/base/txExpandedNameMap.h
rename : content/xslt/src/base/txList.cpp => dom/xslt/base/txList.cpp
rename : content/xslt/src/base/txList.h => dom/xslt/base/txList.h
rename : content/xslt/src/base/txLog.h => dom/xslt/base/txLog.h
rename : content/xslt/src/base/txNamespaceMap.cpp => dom/xslt/base/txNamespaceMap.cpp
rename : content/xslt/src/base/txNamespaceMap.h => dom/xslt/base/txNamespaceMap.h
rename : content/xslt/src/base/txOwningArray.h => dom/xslt/base/txOwningArray.h
rename : content/xslt/src/base/txStack.h => dom/xslt/base/txStack.h
rename : content/xslt/src/base/txStringUtils.h => dom/xslt/base/txStringUtils.h
rename : content/xslt/src/base/txURIUtils.cpp => dom/xslt/base/txURIUtils.cpp
rename : content/xslt/src/base/txURIUtils.h => dom/xslt/base/txURIUtils.h
rename : content/xslt/crashtests/111994.xml => dom/xslt/crashtests/111994.xml
rename : content/xslt/crashtests/111994.xsl => dom/xslt/crashtests/111994.xsl
rename : content/xslt/crashtests/182460-select.xml => dom/xslt/crashtests/182460-select.xml
rename : content/xslt/crashtests/182460-selects.xsl => dom/xslt/crashtests/182460-selects.xsl
rename : content/xslt/crashtests/182460-table.xhtml => dom/xslt/crashtests/182460-table.xhtml
rename : content/xslt/crashtests/226425.xml => dom/xslt/crashtests/226425.xml
rename : content/xslt/crashtests/226425.xsl => dom/xslt/crashtests/226425.xsl
rename : content/xslt/crashtests/406106-1.html => dom/xslt/crashtests/406106-1.html
rename : content/xslt/crashtests/483444.xml => dom/xslt/crashtests/483444.xml
rename : content/xslt/crashtests/485217.xml => dom/xslt/crashtests/485217.xml
rename : content/xslt/crashtests/485217.xsl => dom/xslt/crashtests/485217.xsl
rename : content/xslt/crashtests/485286.xml => dom/xslt/crashtests/485286.xml
rename : content/xslt/crashtests/528300.xml => dom/xslt/crashtests/528300.xml
rename : content/xslt/crashtests/528488.xml => dom/xslt/crashtests/528488.xml
rename : content/xslt/crashtests/528963.xml => dom/xslt/crashtests/528963.xml
rename : content/xslt/crashtests/545927.html => dom/xslt/crashtests/545927.html
rename : content/xslt/crashtests/601543.html => dom/xslt/crashtests/601543.html
rename : content/xslt/crashtests/602115.html => dom/xslt/crashtests/602115.html
rename : content/xslt/crashtests/603844.html => dom/xslt/crashtests/603844.html
rename : content/xslt/crashtests/667315.xml => dom/xslt/crashtests/667315.xml
rename : content/xslt/crashtests/91332.xml => dom/xslt/crashtests/91332.xml
rename : content/xslt/crashtests/91332.xsl => dom/xslt/crashtests/91332.xsl
rename : content/xslt/crashtests/crashtests.list => dom/xslt/crashtests/crashtests.list
rename : content/xslt/public/moz.build => dom/xslt/moz.build
rename : content/xslt/public/nsIDocumentTransformer.h => dom/xslt/nsIDocumentTransformer.h
rename : content/xslt/public/nsIXSLTException.idl => dom/xslt/nsIXSLTException.idl
rename : content/xslt/public/nsIXSLTProcessor.idl => dom/xslt/nsIXSLTProcessor.idl
rename : content/xslt/public/nsIXSLTProcessorPrivate.idl => dom/xslt/nsIXSLTProcessorPrivate.idl
rename : content/xslt/tests/XSLTMark/XSLTMark-static.js => dom/xslt/tests/XSLTMark/XSLTMark-static.js
rename : content/xslt/tests/XSLTMark/XSLTMark-test.js => dom/xslt/tests/XSLTMark/XSLTMark-test.js
rename : content/xslt/tests/XSLTMark/XSLTMark-view.js => dom/xslt/tests/XSLTMark/XSLTMark-view.js
rename : content/xslt/tests/XSLTMark/XSLTMark.css => dom/xslt/tests/XSLTMark/XSLTMark.css
rename : content/xslt/tests/XSLTMark/XSLTMark.xul => dom/xslt/tests/XSLTMark/XSLTMark.xul
rename : content/xslt/tests/buster/DiffDOM.js => dom/xslt/tests/buster/DiffDOM.js
rename : content/xslt/tests/buster/DumpDOM.js => dom/xslt/tests/buster/DumpDOM.js
rename : content/xslt/tests/buster/ReadMe => dom/xslt/tests/buster/ReadMe
rename : content/xslt/tests/buster/buster-files.js => dom/xslt/tests/buster/buster-files.js
rename : content/xslt/tests/buster/buster-handlers.js => dom/xslt/tests/buster/buster-handlers.js
rename : content/xslt/tests/buster/buster-statics.js => dom/xslt/tests/buster/buster-statics.js
rename : content/xslt/tests/buster/buster-test.js => dom/xslt/tests/buster/buster-test.js
rename : content/xslt/tests/buster/buster-view.js => dom/xslt/tests/buster/buster-view.js
rename : content/xslt/tests/buster/buster.css => dom/xslt/tests/buster/buster.css
rename : content/xslt/tests/buster/buster.xul => dom/xslt/tests/buster/buster.xul
rename : content/xslt/tests/buster/helper/generate-rdf.pl => dom/xslt/tests/buster/helper/generate-rdf.pl
rename : content/xslt/tests/buster/install.js => dom/xslt/tests/buster/install.js
rename : content/xslt/tests/buster/jar.mn => dom/xslt/tests/buster/jar.mn
rename : content/xslt/tests/buster/moz.build => dom/xslt/tests/buster/moz.build
rename : content/xslt/tests/buster/result-inspector.xul => dom/xslt/tests/buster/result-inspector.xul
rename : content/xslt/tests/buster/result-view.css => dom/xslt/tests/buster/result-view.css
rename : content/xslt/tests/buster/result-view.js => dom/xslt/tests/buster/result-view.js
rename : content/xslt/tests/buster/result-view.xul => dom/xslt/tests/buster/result-view.xul
rename : content/xslt/tests/buster/xslt-qa-overlay.js => dom/xslt/tests/buster/xslt-qa-overlay.js
rename : content/xslt/tests/buster/xslt-qa-overlay.xul => dom/xslt/tests/buster/xslt-qa-overlay.xul
rename : content/xslt/tests/mochitest/mochitest.ini => dom/xslt/tests/mochitest/mochitest.ini
rename : content/xslt/tests/mochitest/moz.build => dom/xslt/tests/mochitest/moz.build
rename : content/xslt/tests/mochitest/test_bug319374.xhtml => dom/xslt/tests/mochitest/test_bug319374.xhtml
rename : content/xslt/tests/mochitest/test_bug427060.html => dom/xslt/tests/mochitest/test_bug427060.html
rename : content/xslt/tests/mochitest/test_bug440974.html => dom/xslt/tests/mochitest/test_bug440974.html
rename : content/xslt/tests/mochitest/test_bug453441.html => dom/xslt/tests/mochitest/test_bug453441.html
rename : content/xslt/tests/mochitest/test_bug468208.html => dom/xslt/tests/mochitest/test_bug468208.html
rename : content/xslt/tests/mochitest/test_bug511487.html => dom/xslt/tests/mochitest/test_bug511487.html
rename : content/xslt/tests/mochitest/test_bug551412.html => dom/xslt/tests/mochitest/test_bug551412.html
rename : content/xslt/tests/mochitest/test_bug551654.html => dom/xslt/tests/mochitest/test_bug551654.html
rename : content/xslt/tests/mochitest/test_bug566629.html => dom/xslt/tests/mochitest/test_bug566629.html
rename : content/xslt/tests/mochitest/test_bug566629.xhtml => dom/xslt/tests/mochitest/test_bug566629.xhtml
rename : content/xslt/tests/mochitest/test_bug603159.html => dom/xslt/tests/mochitest/test_bug603159.html
rename : content/xslt/tests/mochitest/test_bug616774.html => dom/xslt/tests/mochitest/test_bug616774.html
rename : content/xslt/tests/mochitest/test_bug667315.html => dom/xslt/tests/mochitest/test_bug667315.html
rename : content/xslt/tests/mochitest/test_exslt_regex.html => dom/xslt/tests/mochitest/test_exslt_regex.html
rename : content/xslt/public/txIEXSLTRegExFunctions.idl => dom/xslt/txIEXSLTRegExFunctions.idl
rename : content/xslt/public/txIFunctionEvaluationContext.idl => dom/xslt/txIFunctionEvaluationContext.idl
rename : content/xslt/public/txINodeSet.idl => dom/xslt/txINodeSet.idl
rename : content/xslt/public/txIXPathObject.idl => dom/xslt/txIXPathObject.idl
rename : content/xslt/src/xml/moz.build => dom/xslt/xml/moz.build
rename : content/xslt/src/xml/txXMLParser.cpp => dom/xslt/xml/txXMLParser.cpp
rename : content/xslt/src/xml/txXMLParser.h => dom/xslt/xml/txXMLParser.h
rename : content/xslt/src/xml/txXMLUtils.cpp => dom/xslt/xml/txXMLUtils.cpp
rename : content/xslt/src/xml/txXMLUtils.h => dom/xslt/xml/txXMLUtils.h
rename : content/xslt/src/xpath/XPathEvaluator.cpp => dom/xslt/xpath/XPathEvaluator.cpp
rename : content/xslt/src/xpath/XPathEvaluator.h => dom/xslt/xpath/XPathEvaluator.h
rename : content/xslt/src/xpath/moz.build => dom/xslt/xpath/moz.build
rename : content/xslt/src/xpath/nsXPathExpression.cpp => dom/xslt/xpath/nsXPathExpression.cpp
rename : content/xslt/src/xpath/nsXPathExpression.h => dom/xslt/xpath/nsXPathExpression.h
rename : content/xslt/src/xpath/nsXPathNSResolver.cpp => dom/xslt/xpath/nsXPathNSResolver.cpp
rename : content/xslt/src/xpath/nsXPathNSResolver.h => dom/xslt/xpath/nsXPathNSResolver.h
rename : content/xslt/src/xpath/nsXPathResult.cpp => dom/xslt/xpath/nsXPathResult.cpp
rename : content/xslt/src/xpath/nsXPathResult.h => dom/xslt/xpath/nsXPathResult.h
rename : content/xslt/src/xpath/txBooleanExpr.cpp => dom/xslt/xpath/txBooleanExpr.cpp
rename : content/xslt/src/xpath/txBooleanResult.cpp => dom/xslt/xpath/txBooleanResult.cpp
rename : content/xslt/src/xpath/txCoreFunctionCall.cpp => dom/xslt/xpath/txCoreFunctionCall.cpp
rename : content/xslt/src/xpath/txErrorExpr.cpp => dom/xslt/xpath/txErrorExpr.cpp
rename : content/xslt/src/xpath/txExpr.cpp => dom/xslt/xpath/txExpr.cpp
rename : content/xslt/src/xpath/txExpr.h => dom/xslt/xpath/txExpr.h
rename : content/xslt/src/xpath/txExprLexer.cpp => dom/xslt/xpath/txExprLexer.cpp
rename : content/xslt/src/xpath/txExprLexer.h => dom/xslt/xpath/txExprLexer.h
rename : content/xslt/src/xpath/txExprParser.cpp => dom/xslt/xpath/txExprParser.cpp
rename : content/xslt/src/xpath/txExprParser.h => dom/xslt/xpath/txExprParser.h
rename : content/xslt/src/xpath/txExprResult.h => dom/xslt/xpath/txExprResult.h
rename : content/xslt/src/xpath/txFilterExpr.cpp => dom/xslt/xpath/txFilterExpr.cpp
rename : content/xslt/src/xpath/txForwardContext.cpp => dom/xslt/xpath/txForwardContext.cpp
rename : content/xslt/src/xpath/txForwardContext.h => dom/xslt/xpath/txForwardContext.h
rename : content/xslt/src/xpath/txFunctionCall.cpp => dom/xslt/xpath/txFunctionCall.cpp
rename : content/xslt/src/xpath/txIXPathContext.h => dom/xslt/xpath/txIXPathContext.h
rename : content/xslt/src/xpath/txLiteralExpr.cpp => dom/xslt/xpath/txLiteralExpr.cpp
rename : content/xslt/src/xpath/txLocationStep.cpp => dom/xslt/xpath/txLocationStep.cpp
rename : content/xslt/src/xpath/txMozillaXPathTreeWalker.cpp => dom/xslt/xpath/txMozillaXPathTreeWalker.cpp
rename : content/xslt/src/xpath/txNameTest.cpp => dom/xslt/xpath/txNameTest.cpp
rename : content/xslt/src/xpath/txNamedAttributeStep.cpp => dom/xslt/xpath/txNamedAttributeStep.cpp
rename : content/xslt/src/xpath/txNodeSet.cpp => dom/xslt/xpath/txNodeSet.cpp
rename : content/xslt/src/xpath/txNodeSet.h => dom/xslt/xpath/txNodeSet.h
rename : content/xslt/src/xpath/txNodeSetAdaptor.cpp => dom/xslt/xpath/txNodeSetAdaptor.cpp
rename : content/xslt/src/xpath/txNodeSetAdaptor.h => dom/xslt/xpath/txNodeSetAdaptor.h
rename : content/xslt/src/xpath/txNodeSetContext.cpp => dom/xslt/xpath/txNodeSetContext.cpp
rename : content/xslt/src/xpath/txNodeSetContext.h => dom/xslt/xpath/txNodeSetContext.h
rename : content/xslt/src/xpath/txNodeTypeTest.cpp => dom/xslt/xpath/txNodeTypeTest.cpp
rename : content/xslt/src/xpath/txNumberExpr.cpp => dom/xslt/xpath/txNumberExpr.cpp
rename : content/xslt/src/xpath/txNumberResult.cpp => dom/xslt/xpath/txNumberResult.cpp
rename : content/xslt/src/xpath/txPathExpr.cpp => dom/xslt/xpath/txPathExpr.cpp
rename : content/xslt/src/xpath/txPredicateList.cpp => dom/xslt/xpath/txPredicateList.cpp
rename : content/xslt/src/xpath/txPredicatedNodeTest.cpp => dom/xslt/xpath/txPredicatedNodeTest.cpp
rename : content/xslt/src/xpath/txRelationalExpr.cpp => dom/xslt/xpath/txRelationalExpr.cpp
rename : content/xslt/src/xpath/txResultRecycler.cpp => dom/xslt/xpath/txResultRecycler.cpp
rename : content/xslt/src/xpath/txResultRecycler.h => dom/xslt/xpath/txResultRecycler.h
rename : content/xslt/src/xpath/txRootExpr.cpp => dom/xslt/xpath/txRootExpr.cpp
rename : content/xslt/src/xpath/txSingleNodeContext.h => dom/xslt/xpath/txSingleNodeContext.h
rename : content/xslt/src/xpath/txStringResult.cpp => dom/xslt/xpath/txStringResult.cpp
rename : content/xslt/src/xpath/txUnaryExpr.cpp => dom/xslt/xpath/txUnaryExpr.cpp
rename : content/xslt/src/xpath/txUnionExpr.cpp => dom/xslt/xpath/txUnionExpr.cpp
rename : content/xslt/src/xpath/txUnionNodeTest.cpp => dom/xslt/xpath/txUnionNodeTest.cpp
rename : content/xslt/src/xpath/txVariableRefExpr.cpp => dom/xslt/xpath/txVariableRefExpr.cpp
rename : content/xslt/src/xpath/txXPCOMExtensionFunction.cpp => dom/xslt/xpath/txXPCOMExtensionFunction.cpp
rename : content/xslt/src/xpath/txXPathNode.h => dom/xslt/xpath/txXPathNode.h
rename : content/xslt/src/xpath/txXPathObjectAdaptor.h => dom/xslt/xpath/txXPathObjectAdaptor.h
rename : content/xslt/src/xpath/txXPathOptimizer.cpp => dom/xslt/xpath/txXPathOptimizer.cpp
rename : content/xslt/src/xpath/txXPathOptimizer.h => dom/xslt/xpath/txXPathOptimizer.h
rename : content/xslt/src/xpath/txXPathTreeWalker.h => dom/xslt/xpath/txXPathTreeWalker.h
rename : content/xslt/src/xslt/moz.build => dom/xslt/xslt/moz.build
rename : content/xslt/src/xslt/txBufferingHandler.cpp => dom/xslt/xslt/txBufferingHandler.cpp
rename : content/xslt/src/xslt/txBufferingHandler.h => dom/xslt/xslt/txBufferingHandler.h
rename : content/xslt/src/xslt/txCurrentFunctionCall.cpp => dom/xslt/xslt/txCurrentFunctionCall.cpp
rename : content/xslt/src/xslt/txDocumentFunctionCall.cpp => dom/xslt/xslt/txDocumentFunctionCall.cpp
rename : content/xslt/src/xslt/txEXSLTFunctions.cpp => dom/xslt/xslt/txEXSLTFunctions.cpp
rename : content/xslt/src/xslt/txEXSLTRegExFunctions.js => dom/xslt/xslt/txEXSLTRegExFunctions.js
rename : content/xslt/src/xslt/txEXSLTRegExFunctions.manifest => dom/xslt/xslt/txEXSLTRegExFunctions.manifest
rename : content/xslt/src/xslt/txExecutionState.cpp => dom/xslt/xslt/txExecutionState.cpp
rename : content/xslt/src/xslt/txExecutionState.h => dom/xslt/xslt/txExecutionState.h
rename : content/xslt/src/xslt/txFormatNumberFunctionCall.cpp => dom/xslt/xslt/txFormatNumberFunctionCall.cpp
rename : content/xslt/src/xslt/txGenerateIdFunctionCall.cpp => dom/xslt/xslt/txGenerateIdFunctionCall.cpp
rename : content/xslt/src/xslt/txInstructions.cpp => dom/xslt/xslt/txInstructions.cpp
rename : content/xslt/src/xslt/txInstructions.h => dom/xslt/xslt/txInstructions.h
rename : content/xslt/src/xslt/txKey.h => dom/xslt/xslt/txKey.h
rename : content/xslt/src/xslt/txKeyFunctionCall.cpp => dom/xslt/xslt/txKeyFunctionCall.cpp
rename : content/xslt/src/xslt/txMozillaStylesheetCompiler.cpp => dom/xslt/xslt/txMozillaStylesheetCompiler.cpp
rename : content/xslt/src/xslt/txMozillaTextOutput.cpp => dom/xslt/xslt/txMozillaTextOutput.cpp
rename : content/xslt/src/xslt/txMozillaTextOutput.h => dom/xslt/xslt/txMozillaTextOutput.h
rename : content/xslt/src/xslt/txMozillaXMLOutput.cpp => dom/xslt/xslt/txMozillaXMLOutput.cpp
rename : content/xslt/src/xslt/txMozillaXMLOutput.h => dom/xslt/xslt/txMozillaXMLOutput.h
rename : content/xslt/src/xslt/txMozillaXSLTProcessor.cpp => dom/xslt/xslt/txMozillaXSLTProcessor.cpp
rename : content/xslt/src/xslt/txMozillaXSLTProcessor.h => dom/xslt/xslt/txMozillaXSLTProcessor.h
rename : content/xslt/src/xslt/txNodeSorter.cpp => dom/xslt/xslt/txNodeSorter.cpp
rename : content/xslt/src/xslt/txNodeSorter.h => dom/xslt/xslt/txNodeSorter.h
rename : content/xslt/src/xslt/txOutputFormat.cpp => dom/xslt/xslt/txOutputFormat.cpp
rename : content/xslt/src/xslt/txOutputFormat.h => dom/xslt/xslt/txOutputFormat.h
rename : content/xslt/src/xslt/txPatternOptimizer.cpp => dom/xslt/xslt/txPatternOptimizer.cpp
rename : content/xslt/src/xslt/txPatternOptimizer.h => dom/xslt/xslt/txPatternOptimizer.h
rename : content/xslt/src/xslt/txPatternParser.cpp => dom/xslt/xslt/txPatternParser.cpp
rename : content/xslt/src/xslt/txPatternParser.h => dom/xslt/xslt/txPatternParser.h
rename : content/xslt/src/xslt/txRtfHandler.cpp => dom/xslt/xslt/txRtfHandler.cpp
rename : content/xslt/src/xslt/txRtfHandler.h => dom/xslt/xslt/txRtfHandler.h
rename : content/xslt/src/xslt/txStylesheet.cpp => dom/xslt/xslt/txStylesheet.cpp
rename : content/xslt/src/xslt/txStylesheet.h => dom/xslt/xslt/txStylesheet.h
rename : content/xslt/src/xslt/txStylesheetCompileHandlers.cpp => dom/xslt/xslt/txStylesheetCompileHandlers.cpp
rename : content/xslt/src/xslt/txStylesheetCompileHandlers.h => dom/xslt/xslt/txStylesheetCompileHandlers.h
rename : content/xslt/src/xslt/txStylesheetCompiler.cpp => dom/xslt/xslt/txStylesheetCompiler.cpp
rename : content/xslt/src/xslt/txStylesheetCompiler.h => dom/xslt/xslt/txStylesheetCompiler.h
rename : content/xslt/src/xslt/txTextHandler.cpp => dom/xslt/xslt/txTextHandler.cpp
rename : content/xslt/src/xslt/txTextHandler.h => dom/xslt/xslt/txTextHandler.h
rename : content/xslt/src/xslt/txToplevelItems.cpp => dom/xslt/xslt/txToplevelItems.cpp
rename : content/xslt/src/xslt/txToplevelItems.h => dom/xslt/xslt/txToplevelItems.h
rename : content/xslt/src/xslt/txUnknownHandler.cpp => dom/xslt/xslt/txUnknownHandler.cpp
rename : content/xslt/src/xslt/txUnknownHandler.h => dom/xslt/xslt/txUnknownHandler.h
rename : content/xslt/src/xslt/txVariableMap.h => dom/xslt/xslt/txVariableMap.h
rename : content/xslt/src/xslt/txXMLEventHandler.h => dom/xslt/xslt/txXMLEventHandler.h
rename : content/xslt/src/xslt/txXPathResultComparator.cpp => dom/xslt/xslt/txXPathResultComparator.cpp
rename : content/xslt/src/xslt/txXPathResultComparator.h => dom/xslt/xslt/txXPathResultComparator.h
rename : content/xslt/src/xslt/txXSLTEnvironmentFunctionCall.cpp => dom/xslt/xslt/txXSLTEnvironmentFunctionCall.cpp
rename : content/xslt/src/xslt/txXSLTFunctions.h => dom/xslt/xslt/txXSLTFunctions.h
rename : content/xslt/src/xslt/txXSLTNumber.cpp => dom/xslt/xslt/txXSLTNumber.cpp
rename : content/xslt/src/xslt/txXSLTNumber.h => dom/xslt/xslt/txXSLTNumber.h
rename : content/xslt/src/xslt/txXSLTNumberCounters.cpp => dom/xslt/xslt/txXSLTNumberCounters.cpp
rename : content/xslt/src/xslt/txXSLTPatterns.cpp => dom/xslt/xslt/txXSLTPatterns.cpp
rename : content/xslt/src/xslt/txXSLTPatterns.h => dom/xslt/xslt/txXSLTPatterns.h
rename : content/xslt/src/xslt/txXSLTProcessor.cpp => dom/xslt/xslt/txXSLTProcessor.cpp
rename : content/xslt/src/xslt/txXSLTProcessor.h => dom/xslt/xslt/txXSLTProcessor.h
extra : rebase_source : 2ffae4527252a6937dd1ee2053d2c9d4fbe268fb
2014-01-03 14:48:12 +13:00

485 lines
15 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "txBufferingHandler.h"
class txOutputTransaction
{
public:
enum txTransactionType {
eAttributeTransaction,
eAttributeAtomTransaction,
eCharacterTransaction,
eCharacterNoOETransaction,
eCommentTransaction,
eEndDocumentTransaction,
eEndElementTransaction,
ePITransaction,
eStartDocumentTransaction,
eStartElementAtomTransaction,
eStartElementTransaction
};
txOutputTransaction(txTransactionType aType)
: mType(aType)
{
MOZ_COUNT_CTOR(txOutputTransaction);
}
virtual ~txOutputTransaction()
{
MOZ_COUNT_DTOR(txOutputTransaction);
}
txTransactionType mType;
};
class txCharacterTransaction : public txOutputTransaction
{
public:
txCharacterTransaction(txTransactionType aType, uint32_t aLength)
: txOutputTransaction(aType),
mLength(aLength)
{
MOZ_COUNT_CTOR_INHERITED(txCharacterTransaction, txOutputTransaction);
}
virtual ~txCharacterTransaction()
{
MOZ_COUNT_DTOR_INHERITED(txCharacterTransaction, txOutputTransaction);
}
uint32_t mLength;
};
class txCommentTransaction : public txOutputTransaction
{
public:
txCommentTransaction(const nsAString& aValue)
: txOutputTransaction(eCommentTransaction),
mValue(aValue)
{
MOZ_COUNT_CTOR_INHERITED(txCommentTransaction, txOutputTransaction);
}
virtual ~txCommentTransaction()
{
MOZ_COUNT_DTOR_INHERITED(txCommentTransaction, txOutputTransaction);
}
nsString mValue;
};
class txPITransaction : public txOutputTransaction
{
public:
txPITransaction(const nsAString& aTarget, const nsAString& aData)
: txOutputTransaction(ePITransaction),
mTarget(aTarget),
mData(aData)
{
MOZ_COUNT_CTOR_INHERITED(txPITransaction, txOutputTransaction);
}
virtual ~txPITransaction()
{
MOZ_COUNT_DTOR_INHERITED(txPITransaction, txOutputTransaction);
}
nsString mTarget;
nsString mData;
};
class txStartElementAtomTransaction : public txOutputTransaction
{
public:
txStartElementAtomTransaction(nsIAtom* aPrefix, nsIAtom* aLocalName,
nsIAtom* aLowercaseLocalName, int32_t aNsID)
: txOutputTransaction(eStartElementAtomTransaction),
mPrefix(aPrefix),
mLocalName(aLocalName),
mLowercaseLocalName(aLowercaseLocalName),
mNsID(aNsID)
{
MOZ_COUNT_CTOR_INHERITED(txStartElementAtomTransaction, txOutputTransaction);
}
virtual ~txStartElementAtomTransaction()
{
MOZ_COUNT_DTOR_INHERITED(txStartElementAtomTransaction, txOutputTransaction);
}
nsCOMPtr<nsIAtom> mPrefix;
nsCOMPtr<nsIAtom> mLocalName;
nsCOMPtr<nsIAtom> mLowercaseLocalName;
int32_t mNsID;
};
class txStartElementTransaction : public txOutputTransaction
{
public:
txStartElementTransaction(nsIAtom* aPrefix,
const nsSubstring& aLocalName, int32_t aNsID)
: txOutputTransaction(eStartElementTransaction),
mPrefix(aPrefix),
mLocalName(aLocalName),
mNsID(aNsID)
{
MOZ_COUNT_CTOR_INHERITED(txStartElementTransaction, txOutputTransaction);
}
virtual ~txStartElementTransaction()
{
MOZ_COUNT_DTOR_INHERITED(txStartElementTransaction, txOutputTransaction);
}
nsCOMPtr<nsIAtom> mPrefix;
nsString mLocalName;
int32_t mNsID;
};
class txAttributeTransaction : public txOutputTransaction
{
public:
txAttributeTransaction(nsIAtom* aPrefix,
const nsSubstring& aLocalName, int32_t aNsID,
const nsString& aValue)
: txOutputTransaction(eAttributeTransaction),
mPrefix(aPrefix),
mLocalName(aLocalName),
mNsID(aNsID),
mValue(aValue)
{
MOZ_COUNT_CTOR_INHERITED(txAttributeTransaction, txOutputTransaction);
}
virtual ~txAttributeTransaction()
{
MOZ_COUNT_DTOR_INHERITED(txAttributeTransaction, txOutputTransaction);
}
nsCOMPtr<nsIAtom> mPrefix;
nsString mLocalName;
int32_t mNsID;
nsString mValue;
};
class txAttributeAtomTransaction : public txOutputTransaction
{
public:
txAttributeAtomTransaction(nsIAtom* aPrefix, nsIAtom* aLocalName,
nsIAtom* aLowercaseLocalName,
int32_t aNsID, const nsString& aValue)
: txOutputTransaction(eAttributeAtomTransaction),
mPrefix(aPrefix),
mLocalName(aLocalName),
mLowercaseLocalName(aLowercaseLocalName),
mNsID(aNsID),
mValue(aValue)
{
MOZ_COUNT_CTOR_INHERITED(txAttributeAtomTransaction, txOutputTransaction);
}
virtual ~txAttributeAtomTransaction()
{
MOZ_COUNT_DTOR_INHERITED(txAttributeAtomTransaction, txOutputTransaction);
}
nsCOMPtr<nsIAtom> mPrefix;
nsCOMPtr<nsIAtom> mLocalName;
nsCOMPtr<nsIAtom> mLowercaseLocalName;
int32_t mNsID;
nsString mValue;
};
txBufferingHandler::txBufferingHandler() : mCanAddAttribute(false)
{
MOZ_COUNT_CTOR(txBufferingHandler);
mBuffer = new txResultBuffer();
}
txBufferingHandler::~txBufferingHandler()
{
MOZ_COUNT_DTOR(txBufferingHandler);
}
nsresult
txBufferingHandler::attribute(nsIAtom* aPrefix, nsIAtom* aLocalName,
nsIAtom* aLowercaseLocalName, int32_t aNsID,
const nsString& aValue)
{
NS_ENSURE_TRUE(mBuffer, NS_ERROR_OUT_OF_MEMORY);
if (!mCanAddAttribute) {
// XXX ErrorReport: Can't add attributes without element
return NS_OK;
}
txOutputTransaction* transaction =
new txAttributeAtomTransaction(aPrefix, aLocalName,
aLowercaseLocalName, aNsID,
aValue);
NS_ENSURE_TRUE(transaction, NS_ERROR_OUT_OF_MEMORY);
return mBuffer->addTransaction(transaction);
}
nsresult
txBufferingHandler::attribute(nsIAtom* aPrefix, const nsSubstring& aLocalName,
const int32_t aNsID, const nsString& aValue)
{
NS_ENSURE_TRUE(mBuffer, NS_ERROR_OUT_OF_MEMORY);
if (!mCanAddAttribute) {
// XXX ErrorReport: Can't add attributes without element
return NS_OK;
}
txOutputTransaction* transaction =
new txAttributeTransaction(aPrefix, aLocalName, aNsID, aValue);
NS_ENSURE_TRUE(transaction, NS_ERROR_OUT_OF_MEMORY);
return mBuffer->addTransaction(transaction);
}
nsresult
txBufferingHandler::characters(const nsSubstring& aData, bool aDOE)
{
NS_ENSURE_TRUE(mBuffer, NS_ERROR_OUT_OF_MEMORY);
mCanAddAttribute = false;
txOutputTransaction::txTransactionType type =
aDOE ? txOutputTransaction::eCharacterNoOETransaction
: txOutputTransaction::eCharacterTransaction;
txOutputTransaction* transaction = mBuffer->getLastTransaction();
if (transaction && transaction->mType == type) {
mBuffer->mStringValue.Append(aData);
static_cast<txCharacterTransaction*>(transaction)->mLength +=
aData.Length();
return NS_OK;
}
transaction = new txCharacterTransaction(type, aData.Length());
NS_ENSURE_TRUE(transaction, NS_ERROR_OUT_OF_MEMORY);
mBuffer->mStringValue.Append(aData);
return mBuffer->addTransaction(transaction);
}
nsresult
txBufferingHandler::comment(const nsString& aData)
{
NS_ENSURE_TRUE(mBuffer, NS_ERROR_OUT_OF_MEMORY);
mCanAddAttribute = false;
txOutputTransaction* transaction = new txCommentTransaction(aData);
NS_ENSURE_TRUE(transaction, NS_ERROR_OUT_OF_MEMORY);
return mBuffer->addTransaction(transaction);
}
nsresult
txBufferingHandler::endDocument(nsresult aResult)
{
NS_ENSURE_TRUE(mBuffer, NS_ERROR_OUT_OF_MEMORY);
txOutputTransaction* transaction =
new txOutputTransaction(txOutputTransaction::eEndDocumentTransaction);
NS_ENSURE_TRUE(transaction, NS_ERROR_OUT_OF_MEMORY);
return mBuffer->addTransaction(transaction);
}
nsresult
txBufferingHandler::endElement()
{
NS_ENSURE_TRUE(mBuffer, NS_ERROR_OUT_OF_MEMORY);
mCanAddAttribute = false;
txOutputTransaction* transaction =
new txOutputTransaction(txOutputTransaction::eEndElementTransaction);
NS_ENSURE_TRUE(transaction, NS_ERROR_OUT_OF_MEMORY);
return mBuffer->addTransaction(transaction);
}
nsresult
txBufferingHandler::processingInstruction(const nsString& aTarget,
const nsString& aData)
{
NS_ENSURE_TRUE(mBuffer, NS_ERROR_OUT_OF_MEMORY);
mCanAddAttribute = false;
txOutputTransaction* transaction =
new txPITransaction(aTarget, aData);
NS_ENSURE_TRUE(transaction, NS_ERROR_OUT_OF_MEMORY);
return mBuffer->addTransaction(transaction);
}
nsresult
txBufferingHandler::startDocument()
{
NS_ENSURE_TRUE(mBuffer, NS_ERROR_OUT_OF_MEMORY);
txOutputTransaction* transaction =
new txOutputTransaction(txOutputTransaction::eStartDocumentTransaction);
NS_ENSURE_TRUE(transaction, NS_ERROR_OUT_OF_MEMORY);
return mBuffer->addTransaction(transaction);
}
nsresult
txBufferingHandler::startElement(nsIAtom* aPrefix, nsIAtom* aLocalName,
nsIAtom* aLowercaseLocalName,
int32_t aNsID)
{
NS_ENSURE_TRUE(mBuffer, NS_ERROR_OUT_OF_MEMORY);
mCanAddAttribute = true;
txOutputTransaction* transaction =
new txStartElementAtomTransaction(aPrefix, aLocalName,
aLowercaseLocalName, aNsID);
NS_ENSURE_TRUE(transaction, NS_ERROR_OUT_OF_MEMORY);
return mBuffer->addTransaction(transaction);
}
nsresult
txBufferingHandler::startElement(nsIAtom* aPrefix,
const nsSubstring& aLocalName,
const int32_t aNsID)
{
NS_ENSURE_TRUE(mBuffer, NS_ERROR_OUT_OF_MEMORY);
mCanAddAttribute = true;
txOutputTransaction* transaction =
new txStartElementTransaction(aPrefix, aLocalName, aNsID);
NS_ENSURE_TRUE(transaction, NS_ERROR_OUT_OF_MEMORY);
return mBuffer->addTransaction(transaction);
}
txResultBuffer::txResultBuffer()
{
MOZ_COUNT_CTOR(txResultBuffer);
}
txResultBuffer::~txResultBuffer()
{
MOZ_COUNT_DTOR(txResultBuffer);
for (uint32_t i = 0, len = mTransactions.Length(); i < len; ++i) {
delete mTransactions[i];
}
}
nsresult
txResultBuffer::addTransaction(txOutputTransaction* aTransaction)
{
if (mTransactions.AppendElement(aTransaction) == nullptr) {
return NS_ERROR_OUT_OF_MEMORY;
}
return NS_OK;
}
static nsresult
flushTransaction(txOutputTransaction* aTransaction,
txAXMLEventHandler* aHandler,
nsAFlatString::const_char_iterator& aIter)
{
switch (aTransaction->mType) {
case txOutputTransaction::eAttributeAtomTransaction:
{
txAttributeAtomTransaction* transaction =
static_cast<txAttributeAtomTransaction*>(aTransaction);
return aHandler->attribute(transaction->mPrefix,
transaction->mLocalName,
transaction->mLowercaseLocalName,
transaction->mNsID,
transaction->mValue);
}
case txOutputTransaction::eAttributeTransaction:
{
txAttributeTransaction* attrTransaction =
static_cast<txAttributeTransaction*>(aTransaction);
return aHandler->attribute(attrTransaction->mPrefix,
attrTransaction->mLocalName,
attrTransaction->mNsID,
attrTransaction->mValue);
}
case txOutputTransaction::eCharacterTransaction:
case txOutputTransaction::eCharacterNoOETransaction:
{
txCharacterTransaction* charTransaction =
static_cast<txCharacterTransaction*>(aTransaction);
nsAFlatString::const_char_iterator start = aIter;
nsAFlatString::const_char_iterator end =
start + charTransaction->mLength;
aIter = end;
return aHandler->characters(Substring(start, end),
aTransaction->mType ==
txOutputTransaction::eCharacterNoOETransaction);
}
case txOutputTransaction::eCommentTransaction:
{
txCommentTransaction* commentTransaction =
static_cast<txCommentTransaction*>(aTransaction);
return aHandler->comment(commentTransaction->mValue);
}
case txOutputTransaction::eEndElementTransaction:
{
return aHandler->endElement();
}
case txOutputTransaction::ePITransaction:
{
txPITransaction* piTransaction =
static_cast<txPITransaction*>(aTransaction);
return aHandler->processingInstruction(piTransaction->mTarget,
piTransaction->mData);
}
case txOutputTransaction::eStartDocumentTransaction:
{
return aHandler->startDocument();
}
case txOutputTransaction::eStartElementAtomTransaction:
{
txStartElementAtomTransaction* transaction =
static_cast<txStartElementAtomTransaction*>(aTransaction);
return aHandler->startElement(transaction->mPrefix,
transaction->mLocalName,
transaction->mLowercaseLocalName,
transaction->mNsID);
}
case txOutputTransaction::eStartElementTransaction:
{
txStartElementTransaction* transaction =
static_cast<txStartElementTransaction*>(aTransaction);
return aHandler->startElement(transaction->mPrefix,
transaction->mLocalName,
transaction->mNsID);
}
default:
{
NS_NOTREACHED("Unexpected transaction type");
}
}
return NS_ERROR_UNEXPECTED;
}
nsresult
txResultBuffer::flushToHandler(txAXMLEventHandler* aHandler)
{
nsAFlatString::const_char_iterator iter;
mStringValue.BeginReading(iter);
for (uint32_t i = 0, len = mTransactions.Length(); i < len; ++i) {
nsresult rv = flushTransaction(mTransactions[i], aHandler, iter);
NS_ENSURE_SUCCESS(rv, rv);
}
return NS_OK;
}
txOutputTransaction*
txResultBuffer::getLastTransaction()
{
int32_t last = mTransactions.Length() - 1;
if (last < 0) {
return nullptr;
}
return mTransactions[last];
}