mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2024-10-26 12:25:09 +03:00
Fix xmlTextReaderNext with preparsed document
This fixes the traversal of parent nodes using xmlTextReaderNext() when the reader is based on a preparsed document (created using xmlReaderWalker(doc)). Without this fix the parser will abort even though there are parent nodes it should traverse to, if it is not currently on an element or attribute node. This is incorrect, since it can be for example on a text node when it needs to enter backtracking.
This commit is contained in:
parent
c65c9e8ee0
commit
d2ef114c6b
@ -1917,12 +1917,9 @@ xmlTextReaderNextTree(xmlTextReaderPtr reader)
|
||||
|
||||
/* if reader->node->next is NULL mean no subtree for current node,
|
||||
so need to move to sibling of parent node if present */
|
||||
if ((reader->node->type == XML_ELEMENT_NODE) ||
|
||||
(reader->node->type == XML_ATTRIBUTE_NODE)) {
|
||||
reader->state = XML_TEXTREADER_BACKTRACK;
|
||||
/* This will move to parent if present */
|
||||
xmlTextReaderRead(reader);
|
||||
}
|
||||
reader->state = XML_TEXTREADER_BACKTRACK;
|
||||
/* This will move to parent if present */
|
||||
xmlTextReaderRead(reader);
|
||||
}
|
||||
|
||||
if (reader->node->next != 0) {
|
||||
|
Loading…
Reference in New Issue
Block a user