cvs: php-src(PHP_5_1) /ext/simplexml simplexml.c /ext/simplexml/tests 029.phpt

From: Date: Mon, 27 Feb 2006 13:38:04 +0000
Subject: cvs: php-src(PHP_5_1) /ext/simplexml simplexml.c /ext/simplexml/tests 029.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-37046@lists.php.net to get a copy of this message
helly Mon Feb 27 13:38:04 2006 UTC Added files: (Branch: PHP_5_1) /php-src/ext/simplexml/tests 029.phpt Modified files: /php-src/ext/simplexml simplexml.c Log: - MFH Fix count/foreach interaction http://cvs.php.net/viewcvs.cgi/php-src/ext/simplexml/simplexml.c?r1=1.151.2.14&r2=1.151.2.15&diff_format=u Index: php-src/ext/simplexml/simplexml.c diff -u php-src/ext/simplexml/simplexml.c:1.151.2.14 php-src/ext/simplexml/simplexml.c:1.151.2.15 --- php-src/ext/simplexml/simplexml.c:1.151.2.14 Mon Feb 27 11:55:18 2006 +++ php-src/ext/simplexml/simplexml.c Mon Feb 27 13:38:03 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: simplexml.c,v 1.151.2.14 2006/02/27 11:55:18 helly Exp $ */ +/* $Id: simplexml.c,v 1.151.2.15 2006/02/27 13:38:03 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1438,9 +1438,14 @@ { php_sxe_object *sxe; xmlNodePtr node; + zval *data; *count = 0; sxe = php_sxe_fetch_object(object TSRMLS_CC); + + data = sxe->iter.data; + sxe->iter.data = NULL; + node = php_sxe_reset_iterator(sxe, 0 TSRMLS_CC); while (node) @@ -1450,6 +1455,11 @@ } + if (sxe->iter.data) { + zval_ptr_dtor(&sxe->iter.data); + } + sxe->iter.data = data; + return SUCCESS; } /* }}} */ @@ -2103,7 +2113,7 @@ { php_info_print_table_start(); php_info_print_table_header(2, "Simplexml support", "enabled"); - php_info_print_table_row(2, "Revision", "$Revision: 1.151.2.14 $"); + php_info_print_table_row(2, "Revision", "$Revision: 1.151.2.15 $"); php_info_print_table_row(2, "Schema support", #ifdef LIBXML_SCHEMAS_ENABLED "enabled"); http://cvs.php.net/viewcvs.cgi/php-src/ext/simplexml/tests/029.phpt?view=markup&rev=1.1 Index: php-src/ext/simplexml/tests/029.phpt +++ php-src/ext/simplexml/tests/029.phpt --TEST-- SimpleXML: foreach and count --SKIPIF-- <?php if (!extension_loaded("simplexml")) print "skip"; ?> --FILE-- <?php $xml =<<<EOF <people> <person name="Joe"/> <person name="John"> <children> <person name="Joe"/> </children> </person> <person name="Jane"/> </people> EOF; $people = simplexml_load_string($xml); foreach($people as $person) { var_dump((string)$person['name']); var_dump(count($people)); var_dump(count($person)); } ?> ===DONE=== --EXPECTF-- string(3) "Joe" int(3) int(0) string(4) "John" int(3) int(1) string(4) "Jane" int(3) int(0) ===DONE=== --UEXPECTF-- unicode(3) "Joe" int(3) int(0) unicode(4) "John" int(3) int(1) unicode(4) "Jane" int(3) int(0) ===DONE===

« previous php.cvs (#37046) next »