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

Reply via email to