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

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to