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