Cleanup and testing with the KDE help center files:
- valid.c: cleanup, more useful debugging
- parserInternals.c: cleanup vctxt.nodeTab (de)allocation
- xmlIO.c: entity loading is printed as an error when validating
Daniel
diff --git a/parserInternals.c b/parserInternals.c
index 37cb19e..b9fd3cf 100644
--- a/parserInternals.c
+++ b/parserInternals.c
@@ -277,17 +277,7 @@
ctxt->vctxt.warning = xmlParserValidityWarning;
if (ctxt->vctxt.error == NULL)
ctxt->vctxt.error = xmlParserValidityError;
- /* Allocate the Node stack */
- ctxt->vctxt.nodeTab = (xmlNodePtr *)
- xmlMalloc(4 * sizeof(xmlNodePtr));
- if (ctxt->vctxt.nodeTab == NULL) {
- ctxt->vctxt.nodeMax = 0;
- ctxt->validate = 0;
- return(-1);
- }
- ctxt->vctxt.nodeNr = 0;
- ctxt->vctxt.nodeMax = 4;
- ctxt->vctxt.node = NULL;
+ ctxt->vctxt.nodeMax = 0;
}
ctxt->validate = newvalidate;
} else if (!strcmp(name, "keep blanks")) {
@@ -2223,20 +2213,7 @@
ctxt->vctxt.warning = NULL;
else
ctxt->vctxt.warning = xmlParserValidityWarning;
- /* Allocate the Node stack */
- ctxt->vctxt.nodeTab = (xmlNodePtr *) xmlMalloc(4 * sizeof(xmlNodePtr));
- if (ctxt->vctxt.nodeTab == NULL) {
- xmlGenericError(xmlGenericErrorContext,
- "xmlInitParserCtxt: out of memory\n");
- ctxt->vctxt.nodeMax = 0;
- ctxt->validate = 0;
- ctxt->vctxt.error = NULL;
- ctxt->vctxt.warning = NULL;
- } else {
- ctxt->vctxt.nodeNr = 0;
- ctxt->vctxt.nodeMax = 4;
- ctxt->vctxt.node = NULL;
- }
+ ctxt->vctxt.nodeMax = 0;
} else {
ctxt->vctxt.error = NULL;
ctxt->vctxt.warning = NULL;
@@ -2283,7 +2260,6 @@
if (ctxt->intSubName != NULL) xmlFree((char *) ctxt->intSubName);
if (ctxt->extSubURI != NULL) xmlFree((char *) ctxt->extSubURI);
if (ctxt->extSubSystem != NULL) xmlFree((char *) ctxt->extSubSystem);
- if (ctxt->vctxt.nodeTab != NULL) xmlFree(ctxt->vctxt.nodeTab);
if ((ctxt->sax != NULL) && (ctxt->sax != &xmlDefaultSAXHandler))
xmlFree(ctxt->sax);
if (ctxt->directory != NULL) xmlFree((char *) ctxt->directory);