mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-08-01 10:06:59 +03:00
fixed the streaming property of the reader, it was generating tree faster
* xmlreader.c: fixed the streaming property of the reader, it was generating tree faster than consuming it. Pointed out by Nate Myers * tree.c: fixed a bug in xmlSaveFormatFileEnc if passed a NULL doc Daniel
This commit is contained in:
@ -1,3 +1,10 @@
|
|||||||
|
Tue Jan 14 01:15:04 CET 2003 Daniel Veillard <daniel@veillard.com>
|
||||||
|
|
||||||
|
* xmlreader.c: fixed the streaming property of the reader,
|
||||||
|
it was generating tree faster than consuming it. Pointed out
|
||||||
|
by Nate Myers
|
||||||
|
* tree.c: fixed a bug in xmlSaveFormatFileEnc if passed a NULL doc
|
||||||
|
|
||||||
Sun Jan 12 22:18:02 CET 2003 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
|
Sun Jan 12 22:18:02 CET 2003 Igor Zlatkovic <igor@stud.fh-frankfurt.de>
|
||||||
|
|
||||||
* win32/libxml2.def.src: added more xmlreader and other exports
|
* win32/libxml2.def.src: added more xmlreader and other exports
|
||||||
|
3
tree.c
3
tree.c
@ -7582,6 +7582,9 @@ xmlSaveFormatFileEnc( const char * filename, xmlDocPtr cur,
|
|||||||
xmlCharEncoding enc;
|
xmlCharEncoding enc;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
if (cur == NULL)
|
||||||
|
return(-1);
|
||||||
|
|
||||||
if (encoding == NULL)
|
if (encoding == NULL)
|
||||||
encoding = (const char *) cur->encoding;
|
encoding = (const char *) cur->encoding;
|
||||||
|
|
||||||
|
15
xmlreader.c
15
xmlreader.c
@ -606,8 +606,13 @@ get_next_node:
|
|||||||
while (((oldstate == XML_TEXTREADER_BACKTRACK) ||
|
while (((oldstate == XML_TEXTREADER_BACKTRACK) ||
|
||||||
(reader->node->children == NULL) ||
|
(reader->node->children == NULL) ||
|
||||||
(reader->node->type == XML_ENTITY_REF_NODE) ||
|
(reader->node->type == XML_ENTITY_REF_NODE) ||
|
||||||
(reader->node->type == XML_DTD_NODE)) &&
|
(reader->node->type == XML_DTD_NODE) ||
|
||||||
|
(reader->node->type == XML_DOCUMENT_NODE) ||
|
||||||
|
(reader->node->type == XML_HTML_DOCUMENT_NODE)) &&
|
||||||
(reader->node->next == NULL) &&
|
(reader->node->next == NULL) &&
|
||||||
|
((reader->ctxt->node == NULL) ||
|
||||||
|
(reader->ctxt->node == reader->node) ||
|
||||||
|
(reader->ctxt->node == reader->node->parent)) &&
|
||||||
(reader->ctxt->nodeNr == olddepth) &&
|
(reader->ctxt->nodeNr == olddepth) &&
|
||||||
(reader->ctxt->instate != XML_PARSER_EOF)) {
|
(reader->ctxt->instate != XML_PARSER_EOF)) {
|
||||||
val = xmlTextReaderPushData(reader);
|
val = xmlTextReaderPushData(reader);
|
||||||
@ -643,9 +648,11 @@ get_next_node:
|
|||||||
/*
|
/*
|
||||||
* Cleanup of the old node
|
* Cleanup of the old node
|
||||||
*/
|
*/
|
||||||
if (oldnode->type != XML_DTD_NODE) {
|
if ((reader->node->prev != NULL) &&
|
||||||
xmlUnlinkNode(oldnode);
|
(reader->node->prev->type != XML_DTD_NODE)) {
|
||||||
xmlFreeNode(oldnode);
|
xmlNodePtr tmp = reader->node->prev;
|
||||||
|
xmlUnlinkNode(tmp);
|
||||||
|
xmlFreeNode(tmp);
|
||||||
}
|
}
|
||||||
|
|
||||||
goto node_found;
|
goto node_found;
|
||||||
|
Reference in New Issue
Block a user