1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-03-21 22:50:08 +03:00

writer: Don't call SAX error handler directly

This commit is contained in:
Nick Wellnhofer 2023-12-10 18:29:44 +01:00
parent 61b4c42f38
commit 9684e7a0f2

View File

@ -15,6 +15,7 @@
#include <libxml/xmlmemory.h>
#include <libxml/parser.h>
#include <libxml/parserInternals.h>
#include <libxml/uri.h>
#include <libxml/HTMLtree.h>
#include <libxml/SAX2.h>
@ -4503,28 +4504,17 @@ xmlTextWriterStartDocumentCallback(void *ctx)
xmlParserCtxtPtr ctxt = (xmlParserCtxtPtr) ctx;
xmlDocPtr doc;
if (ctxt->html) {
#ifdef LIBXML_HTML_ENABLED
if (ctxt->html) {
if (ctxt->myDoc == NULL)
ctxt->myDoc = htmlNewDocNoDtD(NULL, NULL);
if (ctxt->myDoc == NULL) {
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData,
"SAX.startDocument(): out of memory\n");
ctxt->errNo = XML_ERR_NO_MEMORY;
ctxt->instate = XML_PARSER_EOF;
ctxt->disableSAX = 1;
xmlErrMemory(ctxt, NULL);
return;
}
#else
xmlWriterErrMsg(NULL, XML_ERR_INTERNAL_ERROR,
"libxml2 built without HTML support\n");
ctxt->errNo = XML_ERR_INTERNAL_ERROR;
ctxt->instate = XML_PARSER_EOF;
ctxt->disableSAX = 1;
return;
} else
#endif
} else {
{
doc = ctxt->myDoc;
if (doc == NULL)
doc = ctxt->myDoc = xmlNewDoc(ctxt->version);
@ -4537,12 +4527,7 @@ xmlTextWriterStartDocumentCallback(void *ctx)
doc->standalone = ctxt->standalone;
}
} else {
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL))
ctxt->sax->error(ctxt->userData,
"SAX.startDocument(): out of memory\n");
ctxt->errNo = XML_ERR_NO_MEMORY;
ctxt->instate = XML_PARSER_EOF;
ctxt->disableSAX = 1;
xmlErrMemory(ctxt, NULL);
return;
}
}