Commit 8b2c7f10 authored by William M. Brack's avatar William M. Brack
Browse files

fixed thread problem

parent d5c2f92d
Fri Nov 22 13:13:00 HKT 2002 William Brack <wbrack@mmm.com.hk>
* threads.c: fixed initialization problem in xmlNewGlobalState
which was causing crash.
* globals.c: removed duplicate call to initxmlDefaultSAXHandler
in xmlInitializeGlobalState.
* parserInternals.c: cleaned up ctxt->sax initialisation.
Thu Nov 21 15:05:45 CET 2002 Daniel Veillard <daniel@veillard.com>
* tree.c include/libxml/tree.h: modified the existing APIs
......
......@@ -409,7 +409,7 @@ xmlInitializeGlobalState(xmlGlobalStatePtr gs)
/*
* Perform initialization as required by libxml
*/
initxmlDefaultSAXHandler(&gs->xmlDefaultSAXHandler, 1);
#ifdef LIBXML_DOCB_ENABLED
initdocbDefaultSAXHandler(&gs->docbDefaultSAXHandler);
#endif
......
......@@ -2146,8 +2146,6 @@ xmlNewInputFromFile(xmlParserCtxtPtr ctxt, const char *filename) {
void
xmlInitParserCtxt(xmlParserCtxtPtr ctxt)
{
xmlSAXHandler *sax;
if(ctxt==NULL) {
xmlGenericError(xmlGenericErrorContext,
"xmlInitParserCtxt: NULL context given\n");
......@@ -2156,13 +2154,13 @@ xmlInitParserCtxt(xmlParserCtxtPtr ctxt)
xmlDefaultSAXHandlerInit();
sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler));
if (sax == NULL) {
ctxt->sax = (xmlSAXHandler *) xmlMalloc(sizeof(xmlSAXHandler));
if (ctxt->sax == NULL) {
xmlGenericError(xmlGenericErrorContext,
"xmlInitParserCtxt: out of memory\n");
}
else
memset(sax, 0, sizeof(xmlSAXHandler));
memcpy(ctxt->sax, &xmlDefaultSAXHandler, sizeof(xmlSAXHandler));
/* Allocate the Input stack */
ctxt->inputTab = (xmlParserInputPtr *)
......@@ -2250,10 +2248,6 @@ xmlInitParserCtxt(xmlParserCtxtPtr ctxt)
ctxt->spaceMax = 10;
ctxt->spaceTab[0] = -1;
ctxt->space = &ctxt->spaceTab[0];
ctxt->sax = sax;
memcpy(sax, &xmlDefaultSAXHandler, sizeof(xmlSAXHandler));
ctxt->userData = ctxt;
ctxt->myDoc = NULL;
ctxt->wellFormed = 1;
......@@ -2264,7 +2258,7 @@ xmlInitParserCtxt(xmlParserCtxtPtr ctxt)
ctxt->linenumbers = xmlLineNumbersDefaultValue;
ctxt->keepBlanks = xmlKeepBlanksDefaultValue;
if (ctxt->keepBlanks == 0)
sax->ignorableWhitespace = ignorableWhitespace;
ctxt->sax->ignorableWhitespace = ignorableWhitespace;
ctxt->vctxt.userData = ctxt;
ctxt->vctxt.error = xmlParserValidityError;
......
......@@ -315,7 +315,7 @@ xmlNewGlobalState(void)
if (gs == NULL)
return(NULL);
memset(gs, 0, sizeof(gs));
memset(gs, 0, sizeof(xmlGlobalState));
xmlInitializeGlobalState(gs);
return (gs);
}
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment