Re: cvs: php-src(PHP_5_2) / NEWS /ext/spl spl_array.c /ext/spl/tests bug40036.phpt
| From: | Marcus Boerger | Date: | Sun, 07 Jan 2007 08:12:01 +0000 |
| Subject: | Re: cvs: php-src(PHP_5_2) / NEWS /ext/spl spl_array.c /ext/spl/tests bug40036.phpt | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-42603@lists.php.net to get a copy of this message | ||
Hello Ilia,
thanks!
best regards
marcus
Sunday, January 7, 2007, 4:52:45 AM, you wrote:
> iliaa Sun Jan 7 03:52:45 2007 UTC
> Added files: (Branch: PHP_5_2)
> /php-src/ext/spl/tests bug40036.phpt
> Modified files:
> /php-src NEWS
> /php-src/ext/spl spl_array.c
> Log:
>
> Fixed bug #40036 (empty() does not work correctly with ArrayObject when
> using ARRAY_AS_PROPS).
>
>
>
> http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.475&r2=1.2027.2.547.2.476&diff_format=u
> Index: php-src/NEWS
> diff -u php-src/NEWS:1.2027.2.547.2.475 php-src/NEWS:1.2027.2.547.2.476
> --- php-src/NEWS:1.2027.2.547.2.475 Sat Jan 6 16:50:55 2007
> +++ php-src/NEWS Sun Jan 7 03:52:44 2007
> @@ -3,6 +3,8 @@
> ?? Jan 2007, PHP 5.2.1RC3
> - Improved proc_open(). Now on Windows it can run external commands not through
> CMD.EXE. (Dmitry)
> +- Fixed bug #40036 (empty() does not work correctly with ArrayObject when using
> + ARRAY_AS_PROPS). (Ilia)
> - Fixed bug #39504 (xmlwriter_write_dtd_entity() creates Attlist tag,
> not entity). (Hannes)
>
>
> http://cvs.php.net/viewvc.cgi/php-src/ext/spl/spl_array.c?r1=1.71.2.17.2.6&r2=1.71.2.17.2.7&diff_format=u
> Index: php-src/ext/spl/spl_array.c
> diff -u php-src/ext/spl/spl_array.c:1.71.2.17.2.6
> php-src/ext/spl/spl_array.c:1.71.2.17.2.7
> --- php-src/ext/spl/spl_array.c:1.71.2.17.2.6 Mon Jan 1 09:36:07 2007
> +++ php-src/ext/spl/spl_array.c Sun Jan 7 03:52:44 2007
> @@ -16,7 +16,7 @@
> +----------------------------------------------------------------------+
> */
>
> -/* $Id: spl_array.c,v 1.71.2.17.2.6 2007/01/01 09:36:07 sebastian Exp $ */
> +/* $Id: spl_array.c,v 1.71.2.17.2.7 2007/01/07 03:52:44 iliaa Exp $ */
>
> #ifdef HAVE_CONFIG_H
> # include "config.h"
> @@ -476,7 +476,16 @@
>
> switch(Z_TYPE_P(offset)) {
> case IS_STRING:
> - return
> zend_symtable_exists(spl_array_get_hash_table(intern, 0 TSRMLS_CC),
> Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
> + if (check_empty) {
> + zval **tmp;
> + HashTable *ht = spl_array_get_hash_table(intern, 0 TSRMLS_CC);
> + if (zend_hash_find(ht, Z_STRVAL_P(offset),
> Z_STRLEN_P(offset)+1, (void **) &tmp) != FAILURE && zend_is_true(*tmp)) {
> + return 1;
> + }
> + return 0;
> + } else {
> + return
> zend_symtable_exists(spl_array_get_hash_table(intern, 0 TSRMLS_CC),
> Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1);
> + }
> case IS_DOUBLE:
> case IS_RESOURCE:
> case IS_BOOL:
> @@ -486,7 +495,16 @@
> } else {
> index = Z_LVAL_P(offset);
> }
> - return
> zend_hash_index_exists(spl_array_get_hash_table(intern, 0 TSRMLS_CC), index);
> + if (check_empty) {
> + zval **tmp;
> + HashTable *ht = spl_array_get_hash_table(intern, 0 TSRMLS_CC);
> + if (zend_hash_index_find(ht, index, (void
> **)&tmp) != FAILURE && zend_is_true(*tmp)) {
> + return 1;
> + }
> + return 0;
> + } else {
> + return
> zend_hash_index_exists(spl_array_get_hash_table(intern, 0 TSRMLS_CC), index);
> + }
> default:
> zend_error(E_WARNING, "Illegal offset type");
> }
>
> http://cvs.php.net/viewvc.cgi/php-src/ext/spl/tests/bug40036.phpt?view=markup&rev=1.1
> Index: php-src/ext/spl/tests/bug40036.phpt
> +++ php-src/ext/spl/tests/bug40036.phpt
Best regards,
Marcus