rrichards Thu Mar 10 17:32:47 2005 EDT Modified files: /php-src/ext/xmlreader php_xmlreader.c Log: add workaround for libxml bug when using next() method remove some no longer needed windows specific code http://cvs.php.net/diff.php/php-src/ext/xmlreader/php_xmlreader.c?r1=1.8&r2=1.9&ty=u Index: php-src/ext/xmlreader/php_xmlreader.c diff -u php-src/ext/xmlreader/php_xmlreader.c:1.8 php-src/ext/xmlreader/php_xmlreader.c:1.9 --- php-src/ext/xmlreader/php_xmlreader.c:1.8 Sun Feb 20 17:56:32 2005 +++ php-src/ext/xmlreader/php_xmlreader.c Thu Mar 10 17:32:47 2005 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_xmlreader.c,v 1.8 2005/02/20 22:56:32 pajoye Exp $ */ +/* $Id: php_xmlreader.c,v 1.9 2005/03/10 22:32:47 rrichards Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -776,22 +776,17 @@ id = getThis(); intern = (xmlreader_object *)zend_object_store_get_object(id TSRMLS_CC); if (intern != NULL && intern->ptr != NULL) { +#if LIBXML_VERSION <= 20617 + /* Bug in libxml prevents a next in certain cases when positioned on end of element */ + if (xmlTextReaderNodeType(intern->ptr) == XML_READER_TYPE_END_ELEMENT) { + retval = xmlTextReaderRead(intern->ptr); + } else +#endif retval = xmlTextReaderNext(intern->ptr); while (name != NULL && retval == 1) { -#ifdef PHP_WIN32 - /* xmlTextReaderConstLocalName should be used once its added to win def libxml.def file. - Doing so will not require localname to be freed as its not allocated */ - xmlChar *localname = xmlTextReaderLocalName(intern->ptr); - if (xmlStrEqual(localname, name)) { - xmlFree(localname); - RETURN_TRUE; - } - xmlFree(localname); -#else if (xmlStrEqual(xmlTextReaderConstLocalName(intern->ptr), name)) { RETURN_TRUE; } -#endif retval = xmlTextReaderNext(intern->ptr); } if (retval == -1) {
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php