mirror of
https://github.com/GNOME/libxml2.git
synced 2025-10-22 08:20:36 +08:00
Remove dead code in xinclude.c
'doc' is checked for NULL in xmlXIncludeLoadDoc, so several code paths can be eliminated.
This commit is contained in:
31
xinclude.c
31
xinclude.c
@@ -59,7 +59,6 @@ struct _xmlXIncludeRef {
|
|||||||
xmlNodePtr inc; /* the included copy */
|
xmlNodePtr inc; /* the included copy */
|
||||||
int xml; /* xml or txt */
|
int xml; /* xml or txt */
|
||||||
int count; /* how many refs use that specific doc */
|
int count; /* how many refs use that specific doc */
|
||||||
xmlXPathObjectPtr xptr; /* the xpointer if needed */
|
|
||||||
int skip; /* skip in case of errors */
|
int skip; /* skip in case of errors */
|
||||||
int fallback; /* fallback was loaded */
|
int fallback; /* fallback was loaded */
|
||||||
};
|
};
|
||||||
@@ -211,8 +210,6 @@ xmlXIncludeFreeRef(xmlXIncludeRefPtr ref) {
|
|||||||
xmlFree(ref->URI);
|
xmlFree(ref->URI);
|
||||||
if (ref->fragment != NULL)
|
if (ref->fragment != NULL)
|
||||||
xmlFree(ref->fragment);
|
xmlFree(ref->fragment);
|
||||||
if (ref->xptr != NULL)
|
|
||||||
xmlXPathFreeObject(ref->xptr);
|
|
||||||
xmlFree(ref);
|
xmlFree(ref);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1557,16 +1554,9 @@ loaded:
|
|||||||
/*
|
/*
|
||||||
* Add the top children list as the replacement copy.
|
* Add the top children list as the replacement copy.
|
||||||
*/
|
*/
|
||||||
if (doc == NULL)
|
|
||||||
{
|
|
||||||
/* Hopefully a DTD declaration won't be copied from
|
|
||||||
* the same document */
|
|
||||||
ctxt->incTab[nr]->inc = xmlCopyNodeList(ctxt->doc->children);
|
|
||||||
} else {
|
|
||||||
ctxt->incTab[nr]->inc = xmlXIncludeCopyNodeList(ctxt, ctxt->doc,
|
ctxt->incTab[nr]->inc = xmlXIncludeCopyNodeList(ctxt, ctxt->doc,
|
||||||
doc, doc->children);
|
doc, doc->children);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
#ifdef LIBXML_XPTR_ENABLED
|
#ifdef LIBXML_XPTR_ENABLED
|
||||||
else {
|
else {
|
||||||
/*
|
/*
|
||||||
@@ -1577,12 +1567,7 @@ loaded:
|
|||||||
xmlXPathContextPtr xptrctxt;
|
xmlXPathContextPtr xptrctxt;
|
||||||
xmlNodeSetPtr set;
|
xmlNodeSetPtr set;
|
||||||
|
|
||||||
if (doc == NULL) {
|
|
||||||
xptrctxt = xmlXPtrNewContext(ctxt->doc, ctxt->incTab[nr]->ref,
|
|
||||||
NULL);
|
|
||||||
} else {
|
|
||||||
xptrctxt = xmlXPtrNewContext(doc, NULL, NULL);
|
xptrctxt = xmlXPtrNewContext(doc, NULL, NULL);
|
||||||
}
|
|
||||||
if (xptrctxt == NULL) {
|
if (xptrctxt == NULL) {
|
||||||
xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
|
xmlXIncludeErr(ctxt, ctxt->incTab[nr]->ref,
|
||||||
XML_XINCLUDE_XPTR_FAILED,
|
XML_XINCLUDE_XPTR_FAILED,
|
||||||
@@ -1686,14 +1671,9 @@ loaded:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (doc == NULL) {
|
|
||||||
ctxt->incTab[nr]->xptr = xptr;
|
|
||||||
ctxt->incTab[nr]->inc = NULL;
|
|
||||||
} else {
|
|
||||||
ctxt->incTab[nr]->inc =
|
ctxt->incTab[nr]->inc =
|
||||||
xmlXIncludeCopyXPointer(ctxt, ctxt->doc, doc, xptr);
|
xmlXIncludeCopyXPointer(ctxt, ctxt->doc, doc, xptr);
|
||||||
xmlXPathFreeObject(xptr);
|
xmlXPathFreeObject(xptr);
|
||||||
}
|
|
||||||
xmlXPathFreeContext(xptrctxt);
|
xmlXPathFreeContext(xptrctxt);
|
||||||
xmlFree(fragment);
|
xmlFree(fragment);
|
||||||
}
|
}
|
||||||
@@ -2212,17 +2192,6 @@ xmlXIncludeIncludeNode(xmlXIncludeCtxtPtr ctxt, int nr) {
|
|||||||
if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL))
|
if ((cur == NULL) || (cur->type == XML_NAMESPACE_DECL))
|
||||||
return(-1);
|
return(-1);
|
||||||
|
|
||||||
/*
|
|
||||||
* If we stored an XPointer a late computation may be needed
|
|
||||||
*/
|
|
||||||
if ((ctxt->incTab[nr]->inc == NULL) &&
|
|
||||||
(ctxt->incTab[nr]->xptr != NULL)) {
|
|
||||||
ctxt->incTab[nr]->inc =
|
|
||||||
xmlXIncludeCopyXPointer(ctxt, ctxt->doc, ctxt->doc,
|
|
||||||
ctxt->incTab[nr]->xptr);
|
|
||||||
xmlXPathFreeObject(ctxt->incTab[nr]->xptr);
|
|
||||||
ctxt->incTab[nr]->xptr = NULL;
|
|
||||||
}
|
|
||||||
list = ctxt->incTab[nr]->inc;
|
list = ctxt->incTab[nr]->inc;
|
||||||
ctxt->incTab[nr]->inc = NULL;
|
ctxt->incTab[nr]->inc = NULL;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user