| Index: WebCore/dom/XMLDocumentParserLibxml2.cpp
|
| ===================================================================
|
| --- WebCore/dom/XMLDocumentParserLibxml2.cpp (revision 69799)
|
| +++ WebCore/dom/XMLDocumentParserLibxml2.cpp (working copy)
|
| @@ -660,7 +660,7 @@
|
|
|
| // JavaScript (which may be run under the xmlParseChunk callstack) may
|
| // cause the parser to be stopped or detached.
|
| - if (isStopped())
|
| + if (isDetached() || m_parserStopped)
|
| return;
|
| }
|
|
|
| @@ -733,7 +733,7 @@
|
| void XMLDocumentParser::startElementNs(const xmlChar* xmlLocalName, const xmlChar* xmlPrefix, const xmlChar* xmlURI, int nb_namespaces,
|
| const xmlChar** libxmlNamespaces, int nb_attributes, int nb_defaulted, const xmlChar** libxmlAttributes)
|
| {
|
| - if (isStopped())
|
| + if (m_parserStopped)
|
| return;
|
|
|
| if (m_parserPaused) {
|
| @@ -822,7 +822,7 @@
|
|
|
| void XMLDocumentParser::endElementNs()
|
| {
|
| - if (isStopped())
|
| + if (m_parserStopped)
|
| return;
|
|
|
| if (m_parserPaused) {
|
| @@ -906,7 +906,7 @@
|
|
|
| void XMLDocumentParser::characters(const xmlChar* s, int len)
|
| {
|
| - if (isStopped())
|
| + if (m_parserStopped)
|
| return;
|
|
|
| if (m_parserPaused) {
|
| @@ -921,7 +921,7 @@
|
|
|
| void XMLDocumentParser::error(ErrorType type, const char* message, va_list args)
|
| {
|
| - if (isStopped())
|
| + if (m_parserStopped)
|
| return;
|
|
|
| #if COMPILER(MSVC) || COMPILER(RVCT)
|
| @@ -945,7 +945,7 @@
|
|
|
| void XMLDocumentParser::processingInstruction(const xmlChar* target, const xmlChar* data)
|
| {
|
| - if (isStopped())
|
| + if (m_parserStopped)
|
| return;
|
|
|
| if (m_parserPaused) {
|
| @@ -979,7 +979,7 @@
|
|
|
| void XMLDocumentParser::cdataBlock(const xmlChar* s, int len)
|
| {
|
| - if (isStopped())
|
| + if (m_parserStopped)
|
| return;
|
|
|
| if (m_parserPaused) {
|
| @@ -997,7 +997,7 @@
|
|
|
| void XMLDocumentParser::comment(const xmlChar* s)
|
| {
|
| - if (isStopped())
|
| + if (m_parserStopped)
|
| return;
|
|
|
| if (m_parserPaused) {
|
| @@ -1034,7 +1034,7 @@
|
|
|
| void XMLDocumentParser::internalSubset(const xmlChar* name, const xmlChar* externalID, const xmlChar* systemID)
|
| {
|
| - if (isStopped())
|
| + if (m_parserStopped)
|
| return;
|
|
|
| if (m_parserPaused) {
|
| @@ -1294,7 +1294,7 @@
|
| sax.ignorableWhitespace = ignorableWhitespaceHandler;
|
| sax.entityDecl = xmlSAX2EntityDecl;
|
| sax.initialized = XML_SAX2_MAGIC;
|
| - DocumentParser::startParsing();
|
| + m_parserStopped = false;
|
| m_sawError = false;
|
| m_sawXSLTransform = false;
|
| m_sawFirstElement = false;
|
| @@ -1318,11 +1318,11 @@
|
| document()->setParsing(false); // Make the doc think it's done, so it will apply xsl sheets.
|
| document()->styleSelectorChanged(RecalcStyleImmediately);
|
| document()->setParsing(true);
|
| - DocumentParser::stopParsing();
|
| + m_parserStopped = true;
|
| }
|
| #endif
|
|
|
| - if (isStopped())
|
| + if (m_parserStopped)
|
| return;
|
|
|
| if (m_context) {
|
|
|