webengine/osswebengine/WebCore/dom/XMLTokenizer.cpp
changeset 13 10e98eab6f85
parent 0 dd21522fd290
child 68 92a765b5b3e7
equal deleted inserted replaced
8:7c90e6132015 13:10e98eab6f85
   425 void setLoaderForLibXMLCallbacks(DocLoader* docLoader)
   425 void setLoaderForLibXMLCallbacks(DocLoader* docLoader)
   426 {
   426 {
   427     globalDocLoader = docLoader;
   427     globalDocLoader = docLoader;
   428 }
   428 }
   429 
   429 
       
   430 static bool didInit = false;
   430 static xmlParserCtxtPtr createStringParser(xmlSAXHandlerPtr handlers, void* userData)
   431 static xmlParserCtxtPtr createStringParser(xmlSAXHandlerPtr handlers, void* userData)
   431 {
   432 {
   432     static bool didInit = false;
       
   433     if (!didInit) {
   433     if (!didInit) {
   434         xmlInitParser();
   434         xmlInitParser();
   435         xmlRegisterInputCallbacks(matchFunc, openFunc, readFunc, closeFunc);
   435         xmlRegisterInputCallbacks(matchFunc, openFunc, readFunc, closeFunc);
   436         xmlRegisterOutputCallbacks(matchFunc, openFunc, writeFunc, closeFunc);
   436         xmlRegisterOutputCallbacks(matchFunc, openFunc, writeFunc, closeFunc);
   437         didInit = true;
   437         didInit = true;
   443     const UChar BOM = 0xFEFF;
   443     const UChar BOM = 0xFEFF;
   444     const unsigned char BOMHighByte = *reinterpret_cast<const unsigned char*>(&BOM);
   444     const unsigned char BOMHighByte = *reinterpret_cast<const unsigned char*>(&BOM);
   445     xmlSwitchEncoding(parser, BOMHighByte == 0xFF ? XML_CHAR_ENCODING_UTF16LE : XML_CHAR_ENCODING_UTF16BE);
   445     xmlSwitchEncoding(parser, BOMHighByte == 0xFF ? XML_CHAR_ENCODING_UTF16LE : XML_CHAR_ENCODING_UTF16BE);
   446     return parser;
   446     return parser;
   447 }
   447 }
   448 #endif
   448 
       
   449 #endif
       
   450 
       
   451 void XMLTokenizer::cleanupXMLStringParser()
       
   452 {
       
   453 #ifndef USE_QXMLSTREAM
       
   454     if( didInit ) {
       
   455         xmlCleanupParser();
       
   456     }
       
   457 #endif
       
   458 }
   449 
   459 
   450 // --------------------------------
   460 // --------------------------------
   451 
   461 
   452 XMLTokenizer::XMLTokenizer(Document* _doc, FrameView* _view)
   462 XMLTokenizer::XMLTokenizer(Document* _doc, FrameView* _view)
   453     : m_doc(_doc)
   463     : m_doc(_doc)