1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2024-10-26 12:25:09 +03:00

Revert "tree: Only allow elements in xmlDocSetRootElement"

This reverts commit 4b698dbaec.

lxml assumes that xmlDocSetRootElement works with non-elements.
This commit is contained in:
Nick Wellnhofer 2024-03-29 13:45:19 +01:00
parent 7c5daa3763
commit 5c55332591
3 changed files with 3 additions and 3 deletions

View File

@ -224,7 +224,7 @@ extra_post_call = {
"xmlAddPrevSibling":
"if (ret_val == NULL) { xmlFreeNode(elem) ; elem = NULL ; }",
"xmlDocSetRootElement":
"if (ret_val == NULL) { xmlFreeNode(root) ; root = NULL ; }",
"if (doc == NULL) { xmlFreeNode(root) ; root = NULL ; }",
"xmlReplaceNode":
"""if (cur != NULL) {
xmlUnlinkNode(cur);

View File

@ -19789,7 +19789,7 @@ test_xmlDocSetRootElement(void) {
root = gen_xmlNodePtr_in(n_root, 1);
ret_val = xmlDocSetRootElement(doc, root);
if (ret_val == NULL) { xmlFreeNode(root) ; root = NULL ; }
if (doc == NULL) { xmlFreeNode(root) ; root = NULL ; }
desret_xmlNodePtr(ret_val);
call_tests++;
des_xmlDocPtr(n_doc, doc, 0);

2
tree.c
View File

@ -5027,7 +5027,7 @@ xmlDocSetRootElement(xmlDocPtr doc, xmlNodePtr root) {
xmlNodePtr old = NULL;
if (doc == NULL) return(NULL);
if ((root == NULL) || (root->type != XML_ELEMENT_NODE))
if ((root == NULL) || (root->type == XML_NAMESPACE_DECL))
return(NULL);
old = doc->children;
while (old != NULL) {