webengine/osswebengine/WebCore/dom/XMLTokenizer.cpp
changeset 5 10e98eab6f85
parent 0 dd21522fd290
child 48 79859ed3eea9
--- a/webengine/osswebengine/WebCore/dom/XMLTokenizer.cpp	Fri May 08 08:25:06 2009 +0300
+++ b/webengine/osswebengine/WebCore/dom/XMLTokenizer.cpp	Fri Jul 03 15:54:40 2009 +0100
@@ -427,9 +427,9 @@
     globalDocLoader = docLoader;
 }
 
+static bool didInit = false;
 static xmlParserCtxtPtr createStringParser(xmlSAXHandlerPtr handlers, void* userData)
 {
-    static bool didInit = false;
     if (!didInit) {
         xmlInitParser();
         xmlRegisterInputCallbacks(matchFunc, openFunc, readFunc, closeFunc);
@@ -445,8 +445,18 @@
     xmlSwitchEncoding(parser, BOMHighByte == 0xFF ? XML_CHAR_ENCODING_UTF16LE : XML_CHAR_ENCODING_UTF16BE);
     return parser;
 }
+
 #endif
 
+void XMLTokenizer::cleanupXMLStringParser()
+{
+#ifndef USE_QXMLSTREAM
+    if( didInit ) {
+        xmlCleanupParser();
+    }
+#endif
+}
+
 // --------------------------------
 
 XMLTokenizer::XMLTokenizer(Document* _doc, FrameView* _view)