| Index: third_party/libxml/error.c
|
| diff --git a/third_party/libxml/error.c b/third_party/libxml/error.c
|
| index 5f03d940a2accacf46a1edd6100dc6001f1b2dcd..7508d41b074b488447ab474cdf2607e3938a2d9c 100644
|
| --- a/third_party/libxml/error.c
|
| +++ b/third_party/libxml/error.c
|
| @@ -132,7 +132,7 @@ xmlSetGenericErrorFunc(void *ctx, xmlGenericErrorFunc handler) {
|
| */
|
| void
|
| xmlSetStructuredErrorFunc(void *ctx, xmlStructuredErrorFunc handler) {
|
| - xmlGenericErrorContext = ctx;
|
| + xmlStructuredErrorContext = ctx;
|
| xmlStructuredError = handler;
|
| }
|
|
|
| @@ -471,7 +471,7 @@ __xmlRaiseError(xmlStructuredErrorFunc schannel,
|
| * if user has defined handler, change data ptr to user's choice
|
| */
|
| if (schannel != NULL)
|
| - data = xmlGenericErrorContext;
|
| + data = xmlStructuredErrorContext;
|
| }
|
| if ((domain == XML_FROM_VALID) &&
|
| ((channel == xmlParserValidityError) ||
|
| @@ -573,7 +573,6 @@ __xmlRaiseError(xmlStructuredErrorFunc schannel,
|
| if ((to->file == NULL) && (node != NULL) && (node->doc != NULL)) {
|
| to->file = (char *) xmlStrdup(node->doc->URL);
|
| }
|
| - file = to->file;
|
| }
|
| to->line = line;
|
| if (str1 != NULL)
|
| @@ -593,20 +592,23 @@ __xmlRaiseError(xmlStructuredErrorFunc schannel,
|
| /*
|
| * Find the callback channel if channel param is NULL
|
| */
|
| - if ((ctxt != NULL) && (channel == NULL) && (xmlStructuredError == NULL) && (ctxt->sax != NULL)) {
|
| + if ((ctxt != NULL) && (channel == NULL) &&
|
| + (xmlStructuredError == NULL) && (ctxt->sax != NULL)) {
|
| if (level == XML_ERR_WARNING)
|
| channel = ctxt->sax->warning;
|
| else
|
| channel = ctxt->sax->error;
|
| data = ctxt->userData;
|
| } else if (channel == NULL) {
|
| - if (xmlStructuredError != NULL)
|
| + if ((schannel == NULL) && (xmlStructuredError != NULL)) {
|
| schannel = xmlStructuredError;
|
| - else
|
| + data = xmlStructuredErrorContext;
|
| + } else {
|
| channel = xmlGenericError;
|
| - if (!data) {
|
| - data = xmlGenericErrorContext;
|
| - }
|
| + if (!data) {
|
| + data = xmlGenericErrorContext;
|
| + }
|
| + }
|
| }
|
| if (schannel != NULL) {
|
| schannel(data, to);
|
| @@ -927,6 +929,7 @@ xmlCtxtResetLastError(void *ctx)
|
|
|
| if (ctxt == NULL)
|
| return;
|
| + ctxt->errNo = XML_ERR_OK;
|
| if (ctxt->lastError.code == XML_ERR_OK)
|
| return;
|
| xmlResetError(&ctxt->lastError);
|
|
|