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
