cvs: php-src(PHP_4_4) / NEWS /ext/standard array.c /ext/standard/tests/array bug29253.phpt

From: Date: Wed, 10 Aug 2005 07:44:11 +0000
Subject: cvs: php-src(PHP_4_4) / NEWS /ext/standard array.c /ext/standard/tests/array bug29253.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-33264@lists.php.net to get a copy of this message
dmitry Wed Aug 10 03:44:11 2005 EDT Added files: (Branch: PHP_4_4) /php-src/ext/standard/tests/array bug29253.phpt Modified files: /php-src NEWS /php-src/ext/standard array.c Log: Fixed bug #29253 (array_diff with $GLOBALS argument fails) http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1247.2.920.2.20&r2=1.1247.2.920.2.21&ty=u Index: php-src/NEWS diff -u php-src/NEWS:1.1247.2.920.2.20 php-src/NEWS:1.1247.2.920.2.21 --- php-src/NEWS:1.1247.2.920.2.20 Thu Aug 4 06:37:50 2005 +++ php-src/NEWS Wed Aug 10 03:44:07 2005 @@ -9,6 +9,7 @@ (Nuno) - Fixed bug #32160 (copying a file into itself leads to data loss). (Ilia) - Fixed bug #31158 (array_splice on $GLOBALS crashes). (Dmitry) +- Fixed bug #29253 (array_diff with $GLOBALS argument fails). (Dmitry) 11 Jul 2005, Version 4.4.0 - Added man pages for "phpize" and "php-config" scripts. (Jakub Vrana) http://cvs.php.net/diff.php/php-src/ext/standard/array.c?r1=1.199.2.44.2.4&r2=1.199.2.44.2.5&ty=u Index: php-src/ext/standard/array.c diff -u php-src/ext/standard/array.c:1.199.2.44.2.4 php-src/ext/standard/array.c:1.199.2.44.2.5 --- php-src/ext/standard/array.c:1.199.2.44.2.4 Thu Aug 4 06:37:51 2005 +++ php-src/ext/standard/array.c Wed Aug 10 03:44:09 2005 @@ -22,7 +22,7 @@ */ -/* $Id: array.c,v 1.199.2.44.2.4 2005/08/04 10:37:51 dmitry Exp $ */ +/* $Id: array.c,v 1.199.2.44.2.5 2005/08/10 07:44:09 dmitry Exp $ */ #include "php.h" #include "php_ini.h" @@ -2622,6 +2622,15 @@ /* copy the argument array */ *return_value = **args[0]; zval_copy_ctor(return_value); + if (return_value->value.ht == &EG(symbol_table)) { + HashTable *ht; + zval *tmp; + + ALLOC_HASHTABLE(ht); + zend_hash_init(ht, 0, NULL, ZVAL_PTR_DTOR, 0); + zend_hash_copy(ht, return_value->value.ht, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *)); + return_value->value.ht = ht; + } /* go through the lists and look for common values */ while (*ptrs[0]) { @@ -2772,6 +2781,15 @@ /* copy the argument array */ *return_value = **args[0]; zval_copy_ctor(return_value); + if (return_value->value.ht == &EG(symbol_table)) { + HashTable *ht; + zval *tmp; + + ALLOC_HASHTABLE(ht); + zend_hash_init(ht, 0, NULL, ZVAL_PTR_DTOR, 0); + zend_hash_copy(ht, return_value->value.ht, (copy_ctor_func_t) zval_add_ref, (void *) &tmp, sizeof(zval *)); + return_value->value.ht = ht; + } /* go through the lists and look for values of ptr[0] that are not in the others */ http://cvs.php.net/co.php/php-src/ext/standard/tests/array/bug29253.phpt?r=1.1&p=1 Index: php-src/ext/standard/tests/array/bug29253.phpt +++ php-src/ext/standard/tests/array/bug29253.phpt

« previous php.cvs (#33264) next »