preparing release 2.6.1, updated and regenerated docs and APIs cleanup and
* configure.in NEWS doc/*: preparing release 2.6.1, updated and
regenerated docs and APIs
* parser.c: cleanup and last change to fix #123105
Daniel
diff --git a/parser.c b/parser.c
index 171c623..ce6272c 100644
--- a/parser.c
+++ b/parser.c
@@ -10642,6 +10642,11 @@
ctxt->vctxt.nodeNr = 0;
ctxt->vctxt.nodeMax = 0;
ctxt->vctxt.node = NULL;
+ if (ctxt->dict != NULL) xmlDictFree(ctxt->dict);
+ ctxt->dict = ctx->dict;
+ ctxt->dictNames = ctx->dictNames;
+ ctxt->attsDefault = ctx->attsDefault;
+ ctxt->attsSpecial = ctx->attsSpecial;
xmlParseContent(ctxt);
@@ -10680,6 +10685,9 @@
ret = 0;
}
ctxt->sax = oldsax;
+ ctxt->dict = NULL;
+ ctxt->attsDefault = NULL;
+ ctxt->attsSpecial = NULL;
xmlFreeParserCtxt(ctxt);
newDoc->intSubset = NULL;
newDoc->extSubset = NULL;
@@ -12129,7 +12137,9 @@
* @filename: an optional file name or URI
* @encoding: the document encoding, or NULL
*
- * Reset a parser context
+ * Reset a push parser context
+ *
+ * Returns 0 in case of success and 1 in case of error
*/
int
xmlCtxtResetPush(xmlParserCtxtPtr ctxt, const char *chunk,
@@ -12139,6 +12149,9 @@
xmlParserInputBufferPtr buf;
xmlCharEncoding enc = XML_CHAR_ENCODING_NONE;
+ if (ctxt == NULL)
+ return(1);
+
if ((encoding == NULL) && (chunk != NULL) && (size >= 4))
enc = xmlDetectCharEncoding((const xmlChar *) chunk, size);