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:
parent
61b4c42f38
commit
9684e7a0f2
27
xmlwriter.c
27
xmlwriter.c
@ -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;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user