equal
deleted
inserted
replaced
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) |