mirror of
https://github.com/reactos/reactos.git
synced 2025-08-01 19:43:33 +00:00
[LIBXML2] Update to version 2.9.8. CORE-15280
This commit is contained in:
parent
61fed54064
commit
5bb277a54b
37 changed files with 545 additions and 493 deletions
26
sdk/lib/3rdparty/libxml2/parser.c
vendored
26
sdk/lib/3rdparty/libxml2/parser.c
vendored
|
@ -83,12 +83,6 @@
|
|||
#ifdef HAVE_UNISTD_H
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
#ifdef HAVE_ZLIB_H
|
||||
#include <zlib.h>
|
||||
#endif
|
||||
#ifdef HAVE_LZMA_H
|
||||
#include <lzma.h>
|
||||
#endif
|
||||
|
||||
#include "buf.h"
|
||||
#include "enc.h"
|
||||
|
@ -155,7 +149,7 @@ xmlParserEntityCheck(xmlParserCtxtPtr ctxt, size_t size,
|
|||
rep = xmlStringDecodeEntities(ctxt, ent->content,
|
||||
XML_SUBSTITUTE_REF, 0, 0, 0);
|
||||
--ctxt->depth;
|
||||
if (ctxt->errNo == XML_ERR_ENTITY_LOOP) {
|
||||
if ((rep == NULL) || (ctxt->errNo == XML_ERR_ENTITY_LOOP)) {
|
||||
ent->content[0] = 0;
|
||||
}
|
||||
|
||||
|
@ -2086,7 +2080,8 @@ static void xmlGROW (xmlParserCtxtPtr ctxt) {
|
|||
|
||||
if (((curEnd > (unsigned long) XML_MAX_LOOKUP_LIMIT) ||
|
||||
(curBase > (unsigned long) XML_MAX_LOOKUP_LIMIT)) &&
|
||||
((ctxt->input->buf) && (ctxt->input->buf->readcallback != (xmlInputReadCallback) xmlNop)) &&
|
||||
((ctxt->input->buf) &&
|
||||
(ctxt->input->buf->readcallback != xmlInputReadCallbackNop)) &&
|
||||
((ctxt->options & XML_PARSE_HUGE) == 0)) {
|
||||
xmlFatalErr(ctxt, XML_ERR_INTERNAL_ERROR, "Huge input lookup");
|
||||
xmlHaltParser(ctxt);
|
||||
|
@ -3375,9 +3370,9 @@ xmlParseNCNameComplex(xmlParserCtxtPtr ctxt) {
|
|||
*/
|
||||
ctxt->input->cur -= l;
|
||||
GROW;
|
||||
ctxt->input->cur += l;
|
||||
if (ctxt->instate == XML_PARSER_EOF)
|
||||
return(NULL);
|
||||
ctxt->input->cur += l;
|
||||
c = CUR_CHAR(l);
|
||||
}
|
||||
}
|
||||
|
@ -7194,6 +7189,8 @@ xmlParseReference(xmlParserCtxtPtr ctxt) {
|
|||
(ret != XML_WAR_UNDECLARED_ENTITY)) {
|
||||
xmlFatalErrMsgStr(ctxt, XML_ERR_UNDECLARED_ENTITY,
|
||||
"Entity '%s' failed to parse\n", ent->name);
|
||||
if (ent->content != NULL)
|
||||
ent->content[0] = 0;
|
||||
xmlParserEntityCheck(ctxt, 0, ent, 0);
|
||||
} else if (list != NULL) {
|
||||
xmlFreeNodeList(list);
|
||||
|
@ -12221,6 +12218,7 @@ xmldecl_done:
|
|||
/* TODO 2.6.0 */
|
||||
xmlGenericError(xmlGenericErrorContext,
|
||||
"xmlParseChunk: encoder error\n");
|
||||
xmlHaltParser(ctxt);
|
||||
return(XML_ERR_INVALID_ENCODING);
|
||||
}
|
||||
xmlBufSetInputBaseCur(in->buffer, ctxt->input, base, current);
|
||||
|
@ -13369,6 +13367,7 @@ xmlParseBalancedChunkMemoryInternal(xmlParserCtxtPtr oldctxt,
|
|||
ctxt->userData = ctxt;
|
||||
if (ctxt->dict != NULL) xmlDictFree(ctxt->dict);
|
||||
ctxt->dict = oldctxt->dict;
|
||||
ctxt->input_id = oldctxt->input_id + 1;
|
||||
ctxt->str_xml = xmlDictLookup(ctxt->dict, BAD_CAST "xml", 3);
|
||||
ctxt->str_xmlns = xmlDictLookup(ctxt->dict, BAD_CAST "xmlns", 5);
|
||||
ctxt->str_xml_ns = xmlDictLookup(ctxt->dict, XML_XML_NAMESPACE, 36);
|
||||
|
@ -13622,6 +13621,7 @@ xmlParseInNodeContext(xmlNodePtr node, const char *data, int datalen,
|
|||
xmlDetectSAX2(ctxt);
|
||||
ctxt->myDoc = doc;
|
||||
/* parsing in context, i.e. as within existing content */
|
||||
ctxt->input_id = 2;
|
||||
ctxt->instate = XML_PARSER_CONTENT;
|
||||
|
||||
fake = xmlNewComment(NULL);
|
||||
|
@ -13834,6 +13834,7 @@ xmlParseBalancedChunkMemoryRecover(xmlDocPtr doc, xmlSAXHandlerPtr sax,
|
|||
newDoc->oldNs = doc->oldNs;
|
||||
}
|
||||
ctxt->instate = XML_PARSER_CONTENT;
|
||||
ctxt->input_id = 2;
|
||||
ctxt->depth = depth;
|
||||
|
||||
/*
|
||||
|
@ -13994,6 +13995,11 @@ xmlCreateEntityParserCtxtInternal(const xmlChar *URL, const xmlChar *ID,
|
|||
if (pctx != NULL) {
|
||||
ctxt->options = pctx->options;
|
||||
ctxt->_private = pctx->_private;
|
||||
/*
|
||||
* this is a subparser of pctx, so the input_id should be
|
||||
* incremented to distinguish from main entity
|
||||
*/
|
||||
ctxt->input_id = pctx->input_id + 1;
|
||||
}
|
||||
|
||||
uri = xmlBuildURI(URL, base);
|
||||
|
@ -14875,7 +14881,7 @@ xmlCtxtReset(xmlParserCtxtPtr ctxt)
|
|||
xmlInitNodeInfoSeq(&ctxt->node_seq);
|
||||
|
||||
if (ctxt->attsDefault != NULL) {
|
||||
xmlHashFree(ctxt->attsDefault, (xmlHashDeallocator) xmlFree);
|
||||
xmlHashFree(ctxt->attsDefault, xmlHashDefaultDeallocator);
|
||||
ctxt->attsDefault = NULL;
|
||||
}
|
||||
if (ctxt->attsSpecial != NULL) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue