mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-10-21 14:53:44 +03:00
more developments on the API testing more cleanups rebuilt Daniel
* gentest.py testapi.c: more developments on the API testing * HTMLparser.c tree.c: more cleanups * doc/*: rebuilt Daniel
This commit is contained in:
@@ -1,3 +1,9 @@
|
||||
Tue Nov 2 19:44:32 CET 2004 Daniel Veillard <daniel@veillard.com>
|
||||
|
||||
* gentest.py testapi.c: more developments on the API testing
|
||||
* HTMLparser.c tree.c: more cleanups
|
||||
* doc/*: rebuilt
|
||||
|
||||
Tue Nov 2 15:49:34 CET 2004 Daniel Veillard <daniel@veillard.com>
|
||||
|
||||
* xmlmemory.c include/libxml/xmlmemory.h: adding xmlMemBlocks()
|
||||
|
68
HTMLparser.c
68
HTMLparser.c
@@ -109,13 +109,15 @@ htmlParseErr(xmlParserCtxtPtr ctxt, xmlParserErrors error,
|
||||
if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
|
||||
(ctxt->instate == XML_PARSER_EOF))
|
||||
return;
|
||||
ctxt->errNo = error;
|
||||
if (ctxt != NULL)
|
||||
ctxt->errNo = error;
|
||||
__xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_HTML, error,
|
||||
XML_ERR_ERROR, NULL, 0,
|
||||
(const char *) str1, (const char *) str2,
|
||||
NULL, 0, 0,
|
||||
msg, str1, str2);
|
||||
ctxt->wellFormed = 0;
|
||||
if (ctxt != NULL)
|
||||
ctxt->wellFormed = 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -134,11 +136,13 @@ htmlParseErrInt(xmlParserCtxtPtr ctxt, xmlParserErrors error,
|
||||
if ((ctxt != NULL) && (ctxt->disableSAX != 0) &&
|
||||
(ctxt->instate == XML_PARSER_EOF))
|
||||
return;
|
||||
ctxt->errNo = error;
|
||||
if (ctxt != NULL)
|
||||
ctxt->errNo = error;
|
||||
__xmlRaiseError(NULL, NULL, NULL, ctxt, NULL, XML_FROM_HTML, error,
|
||||
XML_ERR_ERROR, NULL, 0, NULL, NULL,
|
||||
NULL, val, 0, msg, val);
|
||||
ctxt->wellFormed = 0;
|
||||
if (ctxt != NULL)
|
||||
ctxt->wellFormed = 0;
|
||||
}
|
||||
|
||||
/************************************************************************
|
||||
@@ -394,13 +398,15 @@ encoding_error:
|
||||
* to ISO-Latin-1 (if you don't like this policy, just declare the
|
||||
* encoding !)
|
||||
*/
|
||||
htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
|
||||
"Input is not proper UTF-8, indicate encoding !\n",
|
||||
NULL, NULL);
|
||||
if ((ctxt->sax != NULL) && (ctxt->sax->error != NULL)) {
|
||||
ctxt->sax->error(ctxt->userData, "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
|
||||
{
|
||||
char buffer[150];
|
||||
|
||||
snprintf(buffer, 149, "Bytes: 0x%02X 0x%02X 0x%02X 0x%02X\n",
|
||||
ctxt->input->cur[0], ctxt->input->cur[1],
|
||||
ctxt->input->cur[2], ctxt->input->cur[3]);
|
||||
htmlParseErr(ctxt, XML_ERR_INVALID_ENCODING,
|
||||
"Input is not proper UTF-8, indicate encoding !\n",
|
||||
BAD_CAST buffer, NULL);
|
||||
}
|
||||
|
||||
ctxt->charset = XML_CHAR_ENCODING_8859_1;
|
||||
@@ -3018,6 +3024,12 @@ int
|
||||
htmlParseCharRef(htmlParserCtxtPtr ctxt) {
|
||||
int val = 0;
|
||||
|
||||
if ((ctxt == NULL) || (ctxt->input == NULL)) {
|
||||
htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
|
||||
"htmlParseCharRef: context error\n",
|
||||
NULL, NULL);
|
||||
return(0);
|
||||
}
|
||||
if ((CUR == '&') && (NXT(1) == '#') &&
|
||||
((NXT(2) == 'x') || NXT(2) == 'X')) {
|
||||
SKIP(3);
|
||||
@@ -3341,6 +3353,11 @@ htmlParseStartTag(htmlParserCtxtPtr ctxt) {
|
||||
int meta = 0;
|
||||
int i;
|
||||
|
||||
if ((ctxt == NULL) || (ctxt->input == NULL)) {
|
||||
htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
|
||||
"htmlParseStartTag: context error\n", NULL, NULL);
|
||||
return;
|
||||
}
|
||||
if (CUR != '<') return;
|
||||
NEXT;
|
||||
|
||||
@@ -3822,9 +3839,15 @@ htmlParseElement(htmlParserCtxtPtr ctxt) {
|
||||
const htmlElemDesc * info;
|
||||
htmlParserNodeInfo node_info;
|
||||
const xmlChar *oldname;
|
||||
int depth = ctxt->nameNr;
|
||||
int depth;
|
||||
const xmlChar *oldptr;
|
||||
|
||||
if ((ctxt == NULL) || (ctxt->input == NULL)) {
|
||||
htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
|
||||
"htmlParseStartTag: context error\n", NULL, NULL);
|
||||
return;
|
||||
}
|
||||
depth = ctxt->nameNr;
|
||||
/* Capture start position */
|
||||
if (ctxt->record_info) {
|
||||
node_info.begin_pos = ctxt->input->consumed +
|
||||
@@ -3947,8 +3970,13 @@ htmlParseDocument(htmlParserCtxtPtr ctxt) {
|
||||
xmlInitParser();
|
||||
|
||||
htmlDefaultSAXHandlerInit();
|
||||
ctxt->html = 1;
|
||||
|
||||
if ((ctxt == NULL) || (ctxt->input == NULL)) {
|
||||
htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
|
||||
"htmlParseDocument: context error\n", NULL, NULL);
|
||||
return(XML_ERR_INTERNAL_ERROR);
|
||||
}
|
||||
ctxt->html = 1;
|
||||
GROW;
|
||||
/*
|
||||
* SAX: beginning of the document processing.
|
||||
@@ -5132,6 +5160,11 @@ done:
|
||||
int
|
||||
htmlParseChunk(htmlParserCtxtPtr ctxt, const char *chunk, int size,
|
||||
int terminate) {
|
||||
if ((ctxt == NULL) || (ctxt->input == NULL)) {
|
||||
htmlParseErr(ctxt, XML_ERR_INTERNAL_ERROR,
|
||||
"htmlParseChunk: context error\n", NULL, NULL);
|
||||
return(XML_ERR_INTERNAL_ERROR);
|
||||
}
|
||||
if ((size > 0) && (chunk != NULL) && (ctxt->input != NULL) &&
|
||||
(ctxt->input->buf != NULL) && (ctxt->instate != XML_PARSER_EOF)) {
|
||||
int base = ctxt->input->base - ctxt->input->buf->buffer->content;
|
||||
@@ -5361,6 +5394,9 @@ htmlCreateFileParserCtxt(const char *filename, const char *encoding)
|
||||
/* htmlCharEncoding enc; */
|
||||
xmlChar *content, *content_line = (xmlChar *) "charset=";
|
||||
|
||||
if (filename == NULL)
|
||||
return(NULL);
|
||||
|
||||
ctxt = htmlNewParserCtxt();
|
||||
if (ctxt == NULL) {
|
||||
return(NULL);
|
||||
@@ -5616,7 +5652,12 @@ void
|
||||
htmlCtxtReset(htmlParserCtxtPtr ctxt)
|
||||
{
|
||||
xmlParserInputPtr input;
|
||||
xmlDictPtr dict = ctxt->dict;
|
||||
xmlDictPtr dict;
|
||||
|
||||
if (ctxt == NULL)
|
||||
return;
|
||||
|
||||
dict = ctxt->dict;
|
||||
|
||||
while ((input = inputPop(ctxt)) != NULL) { /* Non consuming */
|
||||
xmlFreeInputStream(input);
|
||||
@@ -5696,6 +5737,9 @@ htmlCtxtReset(htmlParserCtxtPtr ctxt)
|
||||
int
|
||||
htmlCtxtUseOptions(htmlParserCtxtPtr ctxt, int options)
|
||||
{
|
||||
if (ctxt == NULL)
|
||||
return(-1);
|
||||
|
||||
if (options & HTML_PARSE_NOWARNING) {
|
||||
ctxt->sax->warning = NULL;
|
||||
ctxt->vctxt.warning = NULL;
|
||||
|
@@ -795,6 +795,7 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
</dd><dt>cur</dt><dd><a href="html/libxml-xpath.html#xmlXPathAxisFunc">xmlXPathAxisFunc</a><br />
|
||||
</dd><dt>currently</dt><dd><a href="html/libxml-schemasInternals.html#XML_SCHEMAS_INCLUDING_CONVERT_NS">XML_SCHEMAS_INCLUDING_CONVERT_NS</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemBlocks">xmlMemBlocks</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemUsed">xmlMemUsed</a><br />
|
||||
<a href="html/libxml-xmlIO.html#xmlOutputBufferCreateFilename">xmlOutputBufferCreateFilename</a><br />
|
||||
|
@@ -100,6 +100,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<a href="html/libxml-encoding.html#isolat1ToUTF8">isolat1ToUTF8</a><br />
|
||||
<a href="html/libxml-encoding.html#xmlCharEncodingInputFunc">xmlCharEncodingInputFunc</a><br />
|
||||
<a href="html/libxml-encoding.html#xmlCharEncodingOutputFunc">xmlCharEncodingOutputFunc</a><br />
|
||||
</dd><dt>embedded</dt><dd><a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a><br />
|
||||
<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a><br />
|
||||
</dd><dt>emitted</dt><dd><a href="html/libxml-xmlerror.html#xmlSetGenericErrorFunc">xmlSetGenericErrorFunc</a><br />
|
||||
</dd><dt>empty-element</dt><dd><a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
|
||||
</dd><dt>enable</dt><dd><a href="html/libxml-catalog.html#xmlCatalogSetDebug">xmlCatalogSetDebug</a><br />
|
||||
|
@@ -141,6 +141,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<a href="html/libxml-parser.html#xmlCreatePushParserCtxt">xmlCreatePushParserCtxt</a><br />
|
||||
<a href="html/libxml-xmlstring.html#xmlUTF8Strpos">xmlUTF8Strpos</a><br />
|
||||
</dd><dt>field</dt><dd><a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
|
||||
<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a><br />
|
||||
<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a><br />
|
||||
<a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
|
||||
<a href="html/libxml-parser.html#XML_SKIP_IDS">XML_SKIP_IDS</a><br />
|
||||
<a href="html/libxml-parserInternals.html#xmlParseMisc">xmlParseMisc</a><br />
|
||||
@@ -182,6 +184,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<a href="html/libxml-nanohttp.html#xmlNanoHTTPScanProxy">xmlNanoHTTPScanProxy</a><br />
|
||||
</dd><dt>finds</dt><dd><a href="html/libxml-tree.html#xmlSearchNs">xmlSearchNs</a><br />
|
||||
<a href="html/libxml-tree.html#xmlSearchNsByHref">xmlSearchNsByHref</a><br />
|
||||
</dd><dt>finishDtd</dt><dd><a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a><br />
|
||||
<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a><br />
|
||||
</dd><dt>finished</dt><dd><a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
|
||||
<a href="html/libxml-parser.html#xmlCleanupParser">xmlCleanupParser</a><br />
|
||||
<a href="html/libxml-parserInternals.html#xmlSkipBlankChars">xmlSkipBlankChars</a><br />
|
||||
|
@@ -395,27 +395,6 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<a href="html/libxml-tree.html#xmlNewPI">xmlNewPI</a><br />
|
||||
<a href="html/libxml-SAX2.html#xmlSAX2ProcessingInstruction">xmlSAX2ProcessingInstruction</a><br />
|
||||
</dd><dt>insufficient</dt><dd><a href="html/libxml-uri.html#xmlCanonicPath">xmlCanonicPath</a><br />
|
||||
</dd><dt>int</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
|
||||
<a href="">c</a><br />
|
||||
<a href="html/libxml-SAX.html#getColumnNumber">getColumnNumber</a><br />
|
||||
<a href="html/libxml-SAX.html#getLineNumber">getLineNumber</a><br />
|
||||
<a href="html/libxml-HTMLparser.html#htmlHandleOmittedElem">htmlHandleOmittedElem</a><br />
|
||||
<a href="html/libxml-HTMLparser.html#htmlParseCharRef">htmlParseCharRef</a><br />
|
||||
<a href="html/libxml-parserInternals.html#xmlIsLetter">xmlIsLetter</a><br />
|
||||
<a href="html/libxml-parser.html#xmlKeepBlanksDefault">xmlKeepBlanksDefault</a><br />
|
||||
<a href="html/libxml-parser.html#xmlLineNumbersDefault">xmlLineNumbersDefault</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemUsed">xmlMemUsed</a><br />
|
||||
<a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
|
||||
<a href="html/libxml-parserInternals.html#xmlParseCharRef">xmlParseCharRef</a><br />
|
||||
<a href="html/libxml-parser.html#xmlPedanticParserDefault">xmlPedanticParserDefault</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
|
||||
<a href="html/libxml-SAX2.html#xmlSAX2GetColumnNumber">xmlSAX2GetColumnNumber</a><br />
|
||||
<a href="html/libxml-SAX2.html#xmlSAX2GetLineNumber">xmlSAX2GetLineNumber</a><br />
|
||||
<a href="html/libxml-debugXML.html#xmlShellCmd">xmlShellCmd</a><br />
|
||||
<a href="html/libxml-tree.html#xmlSplitQName3">xmlSplitQName3</a><br />
|
||||
<a href="html/libxml-parser.html#xmlSubstituteEntitiesDefault">xmlSubstituteEntitiesDefault</a><br />
|
||||
</dd><dt>integer</dt><dd><a href="html/libxml-xmlstring.html#xmlStrcasecmp">xmlStrcasecmp</a><br />
|
||||
<a href="html/libxml-xmlstring.html#xmlStrcmp">xmlStrcmp</a><br />
|
||||
<a href="html/libxml-xmlstring.html#xmlStrncasecmp">xmlStrncasecmp</a><br />
|
||||
|
@@ -399,7 +399,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
</dd><dt>represented</dt><dd><a href="html/libxml-parserInternals.html#xmlParseCharData">xmlParseCharData</a><br />
|
||||
<a href="html/libxml-xpathInternals.html#xmlXPathStringFunction">xmlXPathStringFunction</a><br />
|
||||
</dd><dt>represented:</dt><dd><a href="html/libxml-HTMLparser.html#_htmlElemDesc">_htmlElemDesc</a><br />
|
||||
</dd><dt>representing</dt><dd><a href="html/libxml-xmlmemory.html#xmlMemUsed">xmlMemUsed</a><br />
|
||||
</dd><dt>representing</dt><dd><a href="html/libxml-xmlmemory.html#xmlMemBlocks">xmlMemBlocks</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemUsed">xmlMemUsed</a><br />
|
||||
</dd><dt>request</dt><dd><a href="html/libxml-xmlIO.html#xmlIOHTTPOpenW">xmlIOHTTPOpenW</a><br />
|
||||
<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethod">xmlNanoHTTPMethod</a><br />
|
||||
<a href="html/libxml-nanohttp.html#xmlNanoHTTPMethodRedir">xmlNanoHTTPMethodRedir</a><br />
|
||||
|
@@ -292,6 +292,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
</dd><dt>xmlParseFile</dt><dd><a href="html/libxml-catalog.html#xmlParseCatalogFile">xmlParseCatalogFile</a><br />
|
||||
</dd><dt>xmlParseNamespace:</dt><dd><a href="html/libxml-parserInternals.html#xmlParseNamespace">xmlParseNamespace</a><br />
|
||||
</dd><dt>xmlParseURI</dt><dd><a href="html/libxml-uri.html#xmlURIEscape">xmlURIEscape</a><br />
|
||||
</dd><dt>xmlParserCtxt</dt><dd><a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a><br />
|
||||
<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a><br />
|
||||
</dd><dt>xmlParserCtxtPtr</dt><dd><a href="html/libxml-parser.html#xmlNewParserCtxt">xmlNewParserCtxt</a><br />
|
||||
<a href="html/libxml-xmlwriter.html#xmlNewTextWriterPushParser">xmlNewTextWriterPushParser</a><br />
|
||||
</dd><dt>xmlParserError</dt><dd><a href="html/libxml-xmlerror.html#_xmlError">_xmlError</a><br />
|
||||
|
@@ -190,6 +190,7 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
</dd><dt>Provides</dt><dd><a href="html/libxml-SAX.html#getPublicId">getPublicId</a><br />
|
||||
<a href="html/libxml-SAX.html#getSystemId">getSystemId</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemBlocks">xmlMemBlocks</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemUsed">xmlMemUsed</a><br />
|
||||
<a href="html/libxml-nanohttp.html#xmlNanoHTTPContentLength">xmlNanoHTTPContentLength</a><br />
|
||||
|
@@ -440,7 +440,9 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<a href="html/libxml-xpathInternals.html#xmlXPathNodeSetSort">xmlXPathNodeSetSort</a><br />
|
||||
</dd><dt>SpacingModifierLetters</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsSpacingModifierLetters">xmlUCSIsSpacingModifierLetters</a><br />
|
||||
</dd><dt>Spec</dt><dd><a href="html/libxml-parserInternals.html#xmlParseStartTag">xmlParseStartTag</a><br />
|
||||
</dd><dt>Special</dt><dd><a href="html/libxml-parser.html#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a><br />
|
||||
</dd><dt>Special</dt><dd><a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a><br />
|
||||
<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a><br />
|
||||
<a href="html/libxml-parser.html#XML_SAX2_MAGIC">XML_SAX2_MAGIC</a><br />
|
||||
</dd><dt>Specials</dt><dd><a href="html/libxml-xmlunicode.html#xmlUCSIsSpecials">xmlUCSIsSpecials</a><br />
|
||||
</dd><dt>Speed</dt><dd><a href="html/libxml-parser.html#_xmlParserCtxt">_xmlParserCtxt</a><br />
|
||||
</dd><dt>Standalone</dt><dd><a href="html/libxml-parserInternals.html#xmlParseSDDecl">xmlParseSDDecl</a><br />
|
||||
|
@@ -637,6 +637,7 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<a href="html/libxml-xmlmemory.html#xmlReallocLoc">xmlReallocLoc</a><br />
|
||||
</dd><dt>areas</dt><dd><a href="html/libxml-xmlmemory.html#xmlGcMemGet">xmlGcMemGet</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlGcMemSetup">xmlGcMemSetup</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemBlocks">xmlMemBlocks</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemShow">xmlMemShow</a><br />
|
||||
</dd><dt>args</dt><dd><a href="html/libxml-xpathInternals.html#CHECK_ARITY">CHECK_ARITY</a><br />
|
||||
<a href="">x</a><br />
|
||||
|
@@ -162,6 +162,7 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<a href="html/libxml-SAX.html#initdocbDefaultSAXHandler">initdocbDefaultSAXHandler</a><br />
|
||||
<a href="html/libxml-SAX.html#inithtmlDefaultSAXHandler">inithtmlDefaultSAXHandler</a><br />
|
||||
<a href="html/libxml-SAX.html#initxmlDefaultSAXHandler">initxmlDefaultSAXHandler</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemBlocks">xmlMemBlocks</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemDisplay">xmlMemDisplay</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemoryDump">xmlMemoryDump</a><br />
|
||||
</dd><dt>book1</dt><dd><a href="html/libxml-uri.html#xmlBuildRelativeURI">xmlBuildRelativeURI</a><br />
|
||||
|
@@ -1433,7 +1433,9 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<a href="html/libxml-uri.html#xmlURIEscapeStr">xmlURIEscapeStr</a><br />
|
||||
<a href="html/libxml-uri.html#xmlURIPtr">xmlURIPtr</a><br />
|
||||
<a href="html/libxml-uri.html#xmlURIUnescapeString">xmlURIUnescapeString</a><br />
|
||||
</p><h2><a name="valid" id="valid">Module valid</a>:</h2><p><a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
|
||||
</p><h2><a name="valid" id="valid">Module valid</a>:</h2><p><a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a><br />
|
||||
<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a><br />
|
||||
<a href="html/libxml-valid.html#_xmlValidCtxt">_xmlValidCtxt</a><br />
|
||||
<a href="html/libxml-valid.html#xmlAddAttributeDecl">xmlAddAttributeDecl</a><br />
|
||||
<a href="html/libxml-valid.html#xmlAddElementDecl">xmlAddElementDecl</a><br />
|
||||
<a href="html/libxml-valid.html#xmlAddID">xmlAddID</a><br />
|
||||
@@ -2407,6 +2409,7 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemBlocks">xmlMemBlocks</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemDisplay">xmlMemDisplay</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemFree">xmlMemFree</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
|
||||
|
@@ -223,6 +223,8 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<a href="html/libxml-xmlerror.html#XML_CHECK_X">XML_CHECK_X</a><br />
|
||||
<a href="html/libxml-tree.html#XML_COMMENT_NODE">XML_COMMENT_NODE</a><br />
|
||||
<a href="html/libxml-parser.html#XML_COMPLETE_ATTRS">XML_COMPLETE_ATTRS</a><br />
|
||||
<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_0">XML_CTXT_FINISH_DTD_0</a><br />
|
||||
<a href="html/libxml-valid.html#XML_CTXT_FINISH_DTD_1">XML_CTXT_FINISH_DTD_1</a><br />
|
||||
<a href="html/libxml-parser.html#XML_DEFAULT_VERSION">XML_DEFAULT_VERSION</a><br />
|
||||
<a href="html/libxml-parser.html#XML_DETECT_IDS">XML_DETECT_IDS</a><br />
|
||||
<a href="html/libxml-tree.html#XML_DOCB_DOCUMENT_NODE">XML_DOCB_DOCUMENT_NODE</a><br />
|
||||
@@ -2022,6 +2024,7 @@ A:link, A:visited, A:active { text-decoration: underline }
|
||||
<a href="html/libxml-xmlmemory.html#xmlMallocAtomicLoc">xmlMallocAtomicLoc</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMallocLoc">xmlMallocLoc</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemBlocks">xmlMemBlocks</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemDisplay">xmlMemDisplay</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemFree">xmlMemFree</a><br />
|
||||
<a href="html/libxml-xmlmemory.html#xmlMemGet">xmlMemGet</a><br />
|
||||
|
File diff suppressed because one or more lines are too long
@@ -30,6 +30,7 @@ void <a href="#xmlFreeFunc">xmlFreeFunc</a> (void * mem)
|
||||
void * <a href="#xmlMallocFunc">xmlMallocFunc</a> (size_t size)
|
||||
</pre>
|
||||
<pre class="programlisting">void * <a href="#xmlMallocLoc">xmlMallocLoc</a> (size_t size, <br /> const char * file, <br /> int line)</pre>
|
||||
<pre class="programlisting">int <a href="#xmlMemBlocks">xmlMemBlocks</a> (void)</pre>
|
||||
<pre class="programlisting">void <a href="#xmlMemDisplay">xmlMemDisplay</a> (FILE * fp)</pre>
|
||||
<pre class="programlisting">void <a href="#xmlMemFree">xmlMemFree</a> (void * ptr)</pre>
|
||||
<pre class="programlisting">int <a href="#xmlMemGet">xmlMemGet</a> (<a href="libxml-xmlmemory.html#xmlFreeFunc">xmlFreeFunc</a> * freeFunc, <br /> <a href="libxml-xmlmemory.html#xmlMallocFunc">xmlMallocFunc</a> * mallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlReallocFunc">xmlReallocFunc</a> * reallocFunc, <br /> <a href="libxml-xmlmemory.html#xmlStrdupFunc">xmlStrdupFunc</a> * strdupFunc)</pre>
|
||||
@@ -68,7 +69,9 @@ void * xmlMallocFunc (size_t size)
|
||||
</pre><p>Signature for a malloc() implementation.</p><div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>the size requested in bytes</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the newly allocated block or NULL in case of error.</td></tr></tbody></table></div><br />
|
||||
<h3><a name="xmlMallocLoc" id="xmlMallocLoc"></a>Function: xmlMallocLoc</h3><pre class="programlisting">void * xmlMallocLoc (size_t size, <br /> const char * file, <br /> int line)<br />
|
||||
</pre><p>a malloc() equivalent, with logging of the allocation info.</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMemDisplay" id="xmlMemDisplay"></a>Function: xmlMemDisplay</h3><pre class="programlisting">void xmlMemDisplay (FILE * fp)<br />
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>size</tt></i>:</span></td><td>an int specifying the size in byte to allocate.</td></tr><tr><td><span class="term"><i><tt>file</tt></i>:</span></td><td>the file name or NULL</td></tr><tr><td><span class="term"><i><tt>line</tt></i>:</span></td><td>the line number</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the allocated area or NULL in case of lack of memory.</td></tr></tbody></table></div><h3><a name="xmlMemBlocks" id="xmlMemBlocks"></a>Function: xmlMemBlocks</h3><pre class="programlisting">int xmlMemBlocks (void)<br />
|
||||
</pre><p>Provides the number of memory areas currently allocated</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>an int representing the number of blocks</td></tr></tbody></table></div><h3><a name="xmlMemDisplay" id="xmlMemDisplay"></a>Function: xmlMemDisplay</h3><pre class="programlisting">void xmlMemDisplay (FILE * fp)<br />
|
||||
</pre><p>show in-extenso the memory blocks allocated</p>
|
||||
<div class="variablelist"><table border="0"><col align="left" /><tbody><tr><td><span class="term"><i><tt>fp</tt></i>:</span></td><td>a FILE descriptor used as the output file, if NULL, the result is written to the file .memorylist</td></tr></tbody></table></div><h3><a name="xmlMemFree" id="xmlMemFree"></a>Function: xmlMemFree</h3><pre class="programlisting">void xmlMemFree (void * ptr)<br />
|
||||
</pre><p></p>
|
||||
|
@@ -1557,6 +1557,8 @@
|
||||
<summary>The DTD validation</summary>
|
||||
<description>API for the DTD handling and the validity checking </description>
|
||||
<author>Daniel Veillard </author>
|
||||
<exports symbol='XML_CTXT_FINISH_DTD_0' type='macro'/>
|
||||
<exports symbol='XML_CTXT_FINISH_DTD_1' type='macro'/>
|
||||
<exports symbol='xmlElementTable' type='typedef'/>
|
||||
<exports symbol='xmlValidStatePtr' type='typedef'/>
|
||||
<exports symbol='xmlIDTablePtr' type='typedef'/>
|
||||
@@ -2578,6 +2580,7 @@
|
||||
<exports symbol='xmlReallocFunc' type='function'/>
|
||||
<exports symbol='xmlMallocFunc' type='function'/>
|
||||
<exports symbol='xmlMemDisplay' type='function'/>
|
||||
<exports symbol='xmlMemBlocks' type='function'/>
|
||||
<exports symbol='xmlGcMemSetup' type='function'/>
|
||||
<exports symbol='xmlMemShow' type='function'/>
|
||||
<exports symbol='xmlMemoryStrdup' type='function'/>
|
||||
@@ -3751,6 +3754,12 @@
|
||||
<macro name='XML_COMPLETE_ATTRS' file='parser'>
|
||||
<info>Bit in the loadsubset context field to tell to do complete the elements attributes lists with the ones defaulted from the DTDs. Use it to initialize xmlLoadExtDtdDefaultValue.</info>
|
||||
</macro>
|
||||
<macro name='XML_CTXT_FINISH_DTD_0' file='valid'>
|
||||
<info>Special value for finishDtd field when embedded in an xmlParserCtxt</info>
|
||||
</macro>
|
||||
<macro name='XML_CTXT_FINISH_DTD_1' file='valid'>
|
||||
<info>Special value for finishDtd field when embedded in an xmlParserCtxt</info>
|
||||
</macro>
|
||||
<macro name='XML_DEFAULT_VERSION' file='parser'>
|
||||
<info>The default version of XML used: 1.0</info>
|
||||
</macro>
|
||||
@@ -6125,7 +6134,7 @@ actually an xmlCharEncoding'/>
|
||||
<field name='nodeNr' type='int' info=' Depth of the parsing stack'/>
|
||||
<field name='nodeMax' type='int' info=' Max depth of the parsing stack'/>
|
||||
<field name='nodeTab' type='xmlNodePtr *' info=' array of nodes'/>
|
||||
<field name='finishDtd' type='int' info=' finished validating the Dtd ?'/>
|
||||
<field name='finishDtd' type='unsigned int' info=' finished validating the Dtd ?'/>
|
||||
<field name='doc' type='xmlDocPtr' info=' the document'/>
|
||||
<field name='valid' type='int' info=' temporary validity check result state state used for non-determinist content validation'/>
|
||||
<field name='vstate' type='xmlValidState *' info=' current state'/>
|
||||
@@ -9914,6 +9923,10 @@ actually an xmlCharEncoding'/>
|
||||
<arg name='file' type='const char *' info='the file name or NULL'/>
|
||||
<arg name='line' type='int' info='the line number'/>
|
||||
</function>
|
||||
<function name='xmlMemBlocks' file='xmlmemory'>
|
||||
<info>Provides the number of memory areas currently allocated</info>
|
||||
<return type='int' info='an int representing the number of blocks'/>
|
||||
</function>
|
||||
<function name='xmlMemDisplay' file='xmlmemory'>
|
||||
<info>show in-extenso the memory blocks allocated</info>
|
||||
<return type='void'/>
|
||||
|
@@ -217,6 +217,8 @@
|
||||
<reference name='XML_CHECK_X' href='html/libxml-xmlerror.html#XML_CHECK_X'/>
|
||||
<reference name='XML_COMMENT_NODE' href='html/libxml-tree.html#XML_COMMENT_NODE'/>
|
||||
<reference name='XML_COMPLETE_ATTRS' href='html/libxml-parser.html#XML_COMPLETE_ATTRS'/>
|
||||
<reference name='XML_CTXT_FINISH_DTD_0' href='html/libxml-valid.html#XML_CTXT_FINISH_DTD_0'/>
|
||||
<reference name='XML_CTXT_FINISH_DTD_1' href='html/libxml-valid.html#XML_CTXT_FINISH_DTD_1'/>
|
||||
<reference name='XML_DEFAULT_VERSION' href='html/libxml-parser.html#XML_DEFAULT_VERSION'/>
|
||||
<reference name='XML_DETECT_IDS' href='html/libxml-parser.html#XML_DETECT_IDS'/>
|
||||
<reference name='XML_DOCB_DOCUMENT_NODE' href='html/libxml-tree.html#XML_DOCB_DOCUMENT_NODE'/>
|
||||
@@ -2016,6 +2018,7 @@
|
||||
<reference name='xmlMallocAtomicLoc' href='html/libxml-xmlmemory.html#xmlMallocAtomicLoc'/>
|
||||
<reference name='xmlMallocFunc' href='html/libxml-xmlmemory.html#xmlMallocFunc'/>
|
||||
<reference name='xmlMallocLoc' href='html/libxml-xmlmemory.html#xmlMallocLoc'/>
|
||||
<reference name='xmlMemBlocks' href='html/libxml-xmlmemory.html#xmlMemBlocks'/>
|
||||
<reference name='xmlMemDisplay' href='html/libxml-xmlmemory.html#xmlMemDisplay'/>
|
||||
<reference name='xmlMemFree' href='html/libxml-xmlmemory.html#xmlMemFree'/>
|
||||
<reference name='xmlMemGet' href='html/libxml-xmlmemory.html#xmlMemGet'/>
|
||||
@@ -3467,6 +3470,8 @@
|
||||
<ref name='XML_CHECK_X'/>
|
||||
<ref name='XML_COMMENT_NODE'/>
|
||||
<ref name='XML_COMPLETE_ATTRS'/>
|
||||
<ref name='XML_CTXT_FINISH_DTD_0'/>
|
||||
<ref name='XML_CTXT_FINISH_DTD_1'/>
|
||||
<ref name='XML_DEFAULT_VERSION'/>
|
||||
<ref name='XML_DETECT_IDS'/>
|
||||
<ref name='XML_DOCB_DOCUMENT_NODE'/>
|
||||
@@ -5302,6 +5307,7 @@
|
||||
<ref name='xmlMallocAtomicLoc'/>
|
||||
<ref name='xmlMallocFunc'/>
|
||||
<ref name='xmlMallocLoc'/>
|
||||
<ref name='xmlMemBlocks'/>
|
||||
<ref name='xmlMemDisplay'/>
|
||||
<ref name='xmlMemFree'/>
|
||||
<ref name='xmlMemGet'/>
|
||||
@@ -11185,6 +11191,8 @@
|
||||
<ref name='xmlURIUnescapeString'/>
|
||||
</file>
|
||||
<file name='valid'>
|
||||
<ref name='XML_CTXT_FINISH_DTD_0'/>
|
||||
<ref name='XML_CTXT_FINISH_DTD_1'/>
|
||||
<ref name='_xmlValidCtxt'/>
|
||||
<ref name='xmlAddAttributeDecl'/>
|
||||
<ref name='xmlAddElementDecl'/>
|
||||
@@ -12173,6 +12181,7 @@
|
||||
<ref name='xmlMallocAtomicLoc'/>
|
||||
<ref name='xmlMallocFunc'/>
|
||||
<ref name='xmlMallocLoc'/>
|
||||
<ref name='xmlMemBlocks'/>
|
||||
<ref name='xmlMemDisplay'/>
|
||||
<ref name='xmlMemFree'/>
|
||||
<ref name='xmlMemGet'/>
|
||||
@@ -15725,6 +15734,7 @@
|
||||
<ref name='getPublicId'/>
|
||||
<ref name='getSystemId'/>
|
||||
<ref name='xmlGcMemGet'/>
|
||||
<ref name='xmlMemBlocks'/>
|
||||
<ref name='xmlMemGet'/>
|
||||
<ref name='xmlMemUsed'/>
|
||||
<ref name='xmlNanoHTTPContentLength'/>
|
||||
@@ -16396,6 +16406,8 @@
|
||||
<ref name='xmlParseStartTag'/>
|
||||
</word>
|
||||
<word name='Special'>
|
||||
<ref name='XML_CTXT_FINISH_DTD_0'/>
|
||||
<ref name='XML_CTXT_FINISH_DTD_1'/>
|
||||
<ref name='XML_SAX2_MAGIC'/>
|
||||
</word>
|
||||
<word name='Specials'>
|
||||
@@ -17772,6 +17784,7 @@
|
||||
<word name='areas'>
|
||||
<ref name='xmlGcMemGet'/>
|
||||
<ref name='xmlGcMemSetup'/>
|
||||
<ref name='xmlMemBlocks'/>
|
||||
<ref name='xmlMemShow'/>
|
||||
</word>
|
||||
<word name='args'>
|
||||
@@ -18066,6 +18079,7 @@
|
||||
<ref name='initdocbDefaultSAXHandler'/>
|
||||
<ref name='inithtmlDefaultSAXHandler'/>
|
||||
<ref name='initxmlDefaultSAXHandler'/>
|
||||
<ref name='xmlMemBlocks'/>
|
||||
<ref name='xmlMemDisplay'/>
|
||||
<ref name='xmlMemoryDump'/>
|
||||
</word>
|
||||
@@ -19310,6 +19324,7 @@
|
||||
<word name='currently'>
|
||||
<ref name='XML_SCHEMAS_INCLUDING_CONVERT_NS'/>
|
||||
<ref name='xmlGcMemGet'/>
|
||||
<ref name='xmlMemBlocks'/>
|
||||
<ref name='xmlMemGet'/>
|
||||
<ref name='xmlMemUsed'/>
|
||||
<ref name='xmlOutputBufferCreateFilename'/>
|
||||
@@ -20172,6 +20187,10 @@
|
||||
<ref name='xmlCharEncodingInputFunc'/>
|
||||
<ref name='xmlCharEncodingOutputFunc'/>
|
||||
</word>
|
||||
<word name='embedded'>
|
||||
<ref name='XML_CTXT_FINISH_DTD_0'/>
|
||||
<ref name='XML_CTXT_FINISH_DTD_1'/>
|
||||
</word>
|
||||
<word name='emitted'>
|
||||
<ref name='xmlSetGenericErrorFunc'/>
|
||||
</word>
|
||||
@@ -20769,6 +20788,8 @@
|
||||
</word>
|
||||
<word name='field'>
|
||||
<ref name='XML_COMPLETE_ATTRS'/>
|
||||
<ref name='XML_CTXT_FINISH_DTD_0'/>
|
||||
<ref name='XML_CTXT_FINISH_DTD_1'/>
|
||||
<ref name='XML_DETECT_IDS'/>
|
||||
<ref name='XML_SKIP_IDS'/>
|
||||
<ref name='xmlParseMisc'/>
|
||||
@@ -20833,6 +20854,10 @@
|
||||
<ref name='xmlSearchNs'/>
|
||||
<ref name='xmlSearchNsByHref'/>
|
||||
</word>
|
||||
<word name='finishDtd'>
|
||||
<ref name='XML_CTXT_FINISH_DTD_0'/>
|
||||
<ref name='XML_CTXT_FINISH_DTD_1'/>
|
||||
</word>
|
||||
<word name='finished'>
|
||||
<ref name='_xmlValidCtxt'/>
|
||||
<ref name='xmlCleanupParser'/>
|
||||
@@ -22095,29 +22120,6 @@
|
||||
<word name='insufficient'>
|
||||
<ref name='xmlCanonicPath'/>
|
||||
</word>
|
||||
<word name='int'>
|
||||
<ref name='_xmlParserCtxt'/>
|
||||
<ref name='c'/>
|
||||
<ref name='getColumnNumber'/>
|
||||
<ref name='getLineNumber'/>
|
||||
<ref name='htmlHandleOmittedElem'/>
|
||||
<ref name='htmlParseCharRef'/>
|
||||
<ref name='xmlIsLetter'/>
|
||||
<ref name='xmlKeepBlanksDefault'/>
|
||||
<ref name='xmlLineNumbersDefault'/>
|
||||
<ref name='xmlMallocAtomicLoc'/>
|
||||
<ref name='xmlMallocLoc'/>
|
||||
<ref name='xmlMemUsed'/>
|
||||
<ref name='xmlParseCharData'/>
|
||||
<ref name='xmlParseCharRef'/>
|
||||
<ref name='xmlPedanticParserDefault'/>
|
||||
<ref name='xmlReallocLoc'/>
|
||||
<ref name='xmlSAX2GetColumnNumber'/>
|
||||
<ref name='xmlSAX2GetLineNumber'/>
|
||||
<ref name='xmlShellCmd'/>
|
||||
<ref name='xmlSplitQName3'/>
|
||||
<ref name='xmlSubstituteEntitiesDefault'/>
|
||||
</word>
|
||||
<word name='integer'>
|
||||
<ref name='xmlStrcasecmp'/>
|
||||
<ref name='xmlStrcmp'/>
|
||||
@@ -25242,6 +25244,7 @@
|
||||
<ref name='_htmlElemDesc'/>
|
||||
</word>
|
||||
<word name='representing'>
|
||||
<ref name='xmlMemBlocks'/>
|
||||
<ref name='xmlMemUsed'/>
|
||||
</word>
|
||||
<word name='request'>
|
||||
@@ -28380,6 +28383,10 @@
|
||||
<word name='xmlParseURI'>
|
||||
<ref name='xmlURIEscape'/>
|
||||
</word>
|
||||
<word name='xmlParserCtxt'>
|
||||
<ref name='XML_CTXT_FINISH_DTD_0'/>
|
||||
<ref name='XML_CTXT_FINISH_DTD_1'/>
|
||||
</word>
|
||||
<word name='xmlParserCtxtPtr'>
|
||||
<ref name='xmlNewParserCtxt'/>
|
||||
<ref name='xmlNewTextWriterPushParser'/>
|
||||
|
90
gentest.py
90
gentest.py
@@ -21,6 +21,7 @@ skipped_modules = [ "SAX", "SAX2", "xlink", "threads", "globals",
|
||||
# Some function really need to be skipped for the tests.
|
||||
#
|
||||
skipped_functions = [ "xmlFdRead", "xmlReadFd", "xmlCtxtReadFd",
|
||||
"htmlFdRead", "htmlReadFd", "htmlCtxtReadFd",
|
||||
"xmlCleanupParser" ]
|
||||
|
||||
#
|
||||
@@ -31,7 +32,33 @@ skipped_memcheck = [ "xmlLoadCatalog", "xmlAddEncodingAlias",
|
||||
"xmlSchemaInitTypes", "xmlNanoFTPProxy", "xmlNanoFTPScanProxy",
|
||||
"xmlNanoHTTPScanProxy", "xmlResetLastError", "xmlCatalogConvert",
|
||||
"xmlCatalogRemove", "xmlLoadCatalogs", "xmlCleanupCharEncodingHandlers",
|
||||
"xmlInitCharEncodingHandlers" ]
|
||||
"xmlInitCharEncodingHandlers", "xmlCatalogCleanup",
|
||||
"htmlParseFile" # loads the catalogs
|
||||
]
|
||||
|
||||
#
|
||||
# Extra code needed for some test cases
|
||||
#
|
||||
extra_post_call = {
|
||||
"xmlAddChild":
|
||||
"if (ret_val == NULL) { xmlFreeNode(cur) ; cur = NULL ; }",
|
||||
"xmlAddChildList":
|
||||
"if (ret_val == NULL) { xmlFreeNodeList(cur) ; cur = NULL ; }",
|
||||
"xmlAddSibling":
|
||||
"if (ret_val == NULL) { xmlFreeNode(elem) ; elem = NULL ; }",
|
||||
"xmlAddNextSibling":
|
||||
"if (ret_val == NULL) { xmlFreeNode(elem) ; elem = NULL ; }",
|
||||
"xmlAddPrevSibling":
|
||||
"if (ret_val == NULL) { xmlFreeNode(elem) ; elem = NULL ; }",
|
||||
"xmlDocSetRootElement":
|
||||
"if (doc == NULL) { xmlFreeNode(root) ; root = NULL ; }",
|
||||
"xmlReplaceNode":
|
||||
"""if ((old == NULL) || (old->parent == NULL)) {
|
||||
xmlFreeNode(cur) ; cur = NULL ; }""",
|
||||
"xmlTextMerge":
|
||||
"""if ((first != NULL) && (first->type != XML_TEXT_NODE)) {
|
||||
xmlFreeNode(second) ; second = NULL ; }""",
|
||||
}
|
||||
|
||||
modules = []
|
||||
|
||||
@@ -106,6 +133,8 @@ int main(void) {
|
||||
int ret;
|
||||
int blocks, mem;
|
||||
|
||||
xmlInitParser();
|
||||
|
||||
LIBXML_TEST_VERSION
|
||||
|
||||
xmlSetStructuredErrorFunc(NULL, structured_errors);
|
||||
@@ -161,9 +190,12 @@ for module in modules:
|
||||
# Provide the type generators and destructors for the parameters
|
||||
#
|
||||
|
||||
def type_convert(str, name, info, module, function):
|
||||
def type_convert(str, name, info, module, function, pos):
|
||||
res = string.replace(str, " *", "_ptr")
|
||||
res = string.replace(res, " ", "_")
|
||||
res = string.replace(res, "htmlNode", "xmlNode")
|
||||
res = string.replace(res, "htmlDoc", "xmlDoc")
|
||||
res = string.replace(res, "htmlParser", "xmlParser")
|
||||
if res == 'const_char_ptr':
|
||||
if string.find(name, "file") != -1 or \
|
||||
string.find(name, "uri") != -1 or \
|
||||
@@ -179,11 +211,22 @@ def type_convert(str, name, info, module, function):
|
||||
return('xmlNanoFTPCtxtPtr')
|
||||
if module == 'nanohttp' and name == 'ctx':
|
||||
return('xmlNanoHTTPCtxtPtr')
|
||||
if res == 'xmlNodePtr' and pos != 0:
|
||||
if (function == 'xmlAddChild' and pos == 2) or \
|
||||
(function == 'xmlAddChildList' and pos == 2) or \
|
||||
(function == 'xmlAddNextSibling' and pos == 2) or \
|
||||
(function == 'xmlAddSibling' and pos == 2) or \
|
||||
(function == 'xmlDocSetRootElement' and pos == 2) or \
|
||||
(function == 'xmlReplaceNode' and pos == 2) or \
|
||||
(function == 'xmlTextMerge') or \
|
||||
(function == 'xmlAddPrevSibling' and pos == 2):
|
||||
return('xmlNodePtr_in');
|
||||
|
||||
return res
|
||||
|
||||
known_param_types = [ "int", "const_char_ptr", "const_xmlChar_ptr",
|
||||
"xmlParserCtxtPtr", "xmlDocPtr", "filepath", "fileoutput" ];
|
||||
"xmlParserCtxtPtr", "xmlDocPtr", "filepath", "fileoutput" ,
|
||||
"xmlNodePtr", "xmlNodePtr_in" ];
|
||||
|
||||
def is_known_param_type(name):
|
||||
for type in known_param_types:
|
||||
@@ -265,9 +308,10 @@ static void des_xmlParserCtxtPtr(int no ATTRIBUTE_UNUSED, xmlParserCtxtPtr val)
|
||||
xmlFreeParserCtxt(val);
|
||||
}
|
||||
|
||||
#define gen_nb_xmlDocPtr 2
|
||||
#define gen_nb_xmlDocPtr 3
|
||||
static xmlDocPtr gen_xmlDocPtr(int no) {
|
||||
if (no == 0) return(xmlNewDoc(BAD_CAST "1.0"));
|
||||
if (no == 1) return(xmlReadMemory("<foo/>", 6, "test", NULL, 0));
|
||||
return(NULL);
|
||||
}
|
||||
static void des_xmlDocPtr(int no ATTRIBUTE_UNUSED, xmlDocPtr val) {
|
||||
@@ -275,6 +319,27 @@ static void des_xmlDocPtr(int no ATTRIBUTE_UNUSED, xmlDocPtr val) {
|
||||
xmlFreeDoc(val);
|
||||
}
|
||||
|
||||
#define gen_nb_xmlNodePtr 2
|
||||
static xmlNodePtr gen_xmlNodePtr(int no) {
|
||||
if (no == 0) return(xmlNewPI(BAD_CAST "test", NULL));
|
||||
return(NULL);
|
||||
}
|
||||
static void des_xmlNodePtr(int no ATTRIBUTE_UNUSED, xmlNodePtr val) {
|
||||
if (val != NULL) {
|
||||
xmlUnlinkNode(val);
|
||||
xmlFreeNode(val);
|
||||
}
|
||||
}
|
||||
|
||||
#define gen_nb_xmlNodePtr_in 3
|
||||
static xmlNodePtr gen_xmlNodePtr_in(int no) {
|
||||
if (no == 0) return(xmlNewPI(BAD_CAST "test", NULL));
|
||||
if (no == 0) return(xmlNewText(BAD_CAST "text"));
|
||||
return(NULL);
|
||||
}
|
||||
static void des_xmlNodePtr_in(int no ATTRIBUTE_UNUSED, xmlNodePtr val ATTRIBUTE_UNUSED) {
|
||||
}
|
||||
|
||||
""");
|
||||
|
||||
#
|
||||
@@ -364,13 +429,15 @@ test_%s(void) {
|
||||
except:
|
||||
args = []
|
||||
t_args = []
|
||||
n = 0
|
||||
for arg in args:
|
||||
n = n + 1
|
||||
rtype = arg.xpathEval("string(@type)")
|
||||
if rtype == 'void':
|
||||
break;
|
||||
info = arg.xpathEval("string(@info)")
|
||||
nam = arg.xpathEval("string(@name)")
|
||||
type = type_convert(rtype, nam, info, module, name)
|
||||
type = type_convert(rtype, nam, info, module, name, n)
|
||||
if is_known_param_type(type) == 0:
|
||||
add_missing_type(type, name);
|
||||
no_gen = 1
|
||||
@@ -384,7 +451,7 @@ test_%s(void) {
|
||||
for ret in rets:
|
||||
rtype = ret.xpathEval("string(@type)")
|
||||
info = ret.xpathEval("string(@info)")
|
||||
type = type_convert(rtype, 'return', info, module, name)
|
||||
type = type_convert(rtype, 'return', info, module, name, 0)
|
||||
if rtype == 'void':
|
||||
break
|
||||
if is_known_return_type(type) == 0:
|
||||
@@ -469,6 +536,9 @@ test_%s(void) {
|
||||
test.write(");\n")
|
||||
test.write(" call_tests++;\n");
|
||||
|
||||
if extra_post_call.has_key(name):
|
||||
test.write(" %s\n"% (extra_post_call[name]))
|
||||
|
||||
# Free the arguments
|
||||
for arg in t_args:
|
||||
(nam, type, rtype, info) = arg;
|
||||
@@ -479,11 +549,15 @@ test_%s(void) {
|
||||
# Check the memory usage
|
||||
if no_mem == 0:
|
||||
test.write(""" if (mem_base != xmlMemBlocks()) {
|
||||
printf("Leak of %%d blocks found in %s\\n",
|
||||
printf("Leak of %%d blocks found in %s",
|
||||
xmlMemBlocks() - mem_base);
|
||||
ret++;
|
||||
}
|
||||
""" % (name));
|
||||
for arg in t_args:
|
||||
(nam, type, rtype, info) = arg;
|
||||
test.write(""" printf(" %%d", n_%s);\n""" % (nam))
|
||||
test.write(""" printf("\\n");\n""")
|
||||
test.write(" }\n")
|
||||
|
||||
for arg in t_args:
|
||||
test.write(" }\n")
|
||||
|
5
tree.c
5
tree.c
@@ -2154,6 +2154,7 @@ xmlNewDocPI(xmlDocPtr doc, const xmlChar *name, const xmlChar *content) {
|
||||
if (content != NULL) {
|
||||
cur->content = xmlStrdup(content);
|
||||
}
|
||||
cur->doc = doc;
|
||||
|
||||
if ((__xmlRegisterCallbacks) && (xmlRegisterNodeDefaultValue))
|
||||
xmlRegisterNodeDefaultValue((xmlNodePtr)cur);
|
||||
@@ -3525,10 +3526,10 @@ xmlUnlinkNode(xmlNodePtr cur) {
|
||||
*/
|
||||
xmlNodePtr
|
||||
xmlReplaceNode(xmlNodePtr old, xmlNodePtr cur) {
|
||||
if (old == NULL) {
|
||||
if ((old == NULL) || (old->parent == NULL)) {
|
||||
#ifdef DEBUG_TREE
|
||||
xmlGenericError(xmlGenericErrorContext,
|
||||
"xmlReplaceNode : old == NULL\n");
|
||||
"xmlReplaceNode : old == NULL or without parent\n");
|
||||
#endif
|
||||
return(NULL);
|
||||
}
|
||||
|
Reference in New Issue
Block a user