Hi, 2010/8/21 Kalle Sommer Nielsen <ka...@php.net>
> kalle Sat, 21 Aug 2010 16:22:46 +0000 > > Revision: http://svn.php.net/viewvc?view=revision&revision=302614 > > Log: > Fixed bug #52655 (SimpleXMLIterator supports ArrayAccess without > implementing the interface) > > Bug: http://bugs.php.net/52655 (Assigned) SimpleXMLIterator supports > ArrayAccess without implementing Interface > > Changed paths: > U php/php-src/branches/PHP_5_3/NEWS > U php/php-src/branches/PHP_5_3/ext/simplexml/simplexml.c > U php/php-src/trunk/ext/simplexml/simplexml.c > > Modified: php/php-src/branches/PHP_5_3/NEWS > =================================================================== > --- php/php-src/branches/PHP_5_3/NEWS 2010-08-21 16:19:30 UTC (rev > 302613) > +++ php/php-src/branches/PHP_5_3/NEWS 2010-08-21 16:22:46 UTC (rev > 302614) > @@ -12,7 +12,9 @@ > - Changed the $context parameter on copy() to actually have an effect. > (Kalle) > - Fixed possible crash in mssql_fetch_batch(). (Kalle) > > -- Fixed bug #52654 mysqli doesn't install headers with structures it uses. > +- Fixed bug #52655 (SimpleXMLIterator supports ArrayAccess without > implementing > + the interface). (Kalle) > +- Fixed bug #52654 (mysqli doesn't install headers with structures it > uses). > (Andrey) > - Fixed bug #52636 (php_mysql_fetch_hash writes long value into int). > (Kalle, rein at basefarm dot no) > > Modified: php/php-src/branches/PHP_5_3/ext/simplexml/simplexml.c > =================================================================== > --- php/php-src/branches/PHP_5_3/ext/simplexml/simplexml.c 2010-08-21 > 16:19:30 UTC (rev 302613) > +++ php/php-src/branches/PHP_5_3/ext/simplexml/simplexml.c 2010-08-21 > 16:22:46 UTC (rev 302614) > @@ -2536,7 +2536,7 @@ > sxe_class_entry = zend_register_internal_class(&sxe TSRMLS_CC); > sxe_class_entry->get_iterator = php_sxe_get_iterator; > sxe_class_entry->iterator_funcs.funcs = &php_sxe_iterator_funcs; > - zend_class_implements(sxe_class_entry TSRMLS_CC, 1, > zend_ce_traversable); > + zend_class_implements(sxe_class_entry TSRMLS_CC, 2, > zend_ce_traversable, zend_ce_arrayaccess); > sxe_object_handlers.get_method = > zend_get_std_object_handlers()->get_method; > sxe_object_handlers.get_constructor = > zend_get_std_object_handlers()->get_constructor; > sxe_object_handlers.get_class_entry = > zend_get_std_object_handlers()->get_class_entry; > > Modified: php/php-src/trunk/ext/simplexml/simplexml.c > =================================================================== > --- php/php-src/trunk/ext/simplexml/simplexml.c 2010-08-21 16:19:30 UTC > (rev 302613) > +++ php/php-src/trunk/ext/simplexml/simplexml.c 2010-08-21 16:22:46 UTC > (rev 302614) > @@ -2536,7 +2536,7 @@ > sxe_class_entry = zend_register_internal_class(&sxe TSRMLS_CC); > sxe_class_entry->get_iterator = php_sxe_get_iterator; > sxe_class_entry->iterator_funcs.funcs = &php_sxe_iterator_funcs; > - zend_class_implements(sxe_class_entry TSRMLS_CC, 1, > zend_ce_traversable); > + zend_class_implements(sxe_class_entry TSRMLS_CC, 2, > zend_ce_traversable, zend_ce_arrayaccess); > sxe_object_handlers.get_method = > zend_get_std_object_handlers()->get_method; > sxe_object_handlers.get_constructor = > zend_get_std_object_handlers()->get_constructor; > sxe_object_handlers.get_class_entry = > zend_get_std_object_handlers()->get_class_entry; > > This code causes to several tests fail... It even turns impossible to instantiate SimpleXMLElement. $ sapi/cli/php -r 'new SimpleXMLElement("<foo>");' Fatal error: Cannot instantiate abstract class SimpleXMLElement in Command line code on line 1 -- Regards, Felipe Pena