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

From: Date: Sun, 12 Nov 2006 01:16:42 +0000
Subject: cvs: php-src(PHP_4_4) / NEWS /ext/standard array.c /ext/standard/tests/array bug36975.phpt
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-41492@lists.php.net to get a copy of this message
bjori Sun Nov 12 01:16:42 2006 UTC Added files: (Branch: PHP_4_4) /php-src/ext/standard/tests/array bug36975.phpt Modified files: /php-src/ext/standard array.c /php-src NEWS Log: MFH: Fixed bug#36975 (natcasesort() causes array_pop() to misbehave) http://cvs.php.net/viewvc.cgi/php-src/ext/standard/array.c?r1=1.199.2.44.2.12&r2=1.199.2.44.2.13&diff_format=u Index: php-src/ext/standard/array.c diff -u php-src/ext/standard/array.c:1.199.2.44.2.12 php-src/ext/standard/array.c:1.199.2.44.2.13 --- php-src/ext/standard/array.c:1.199.2.44.2.12 Tue Sep 19 09:39:14 2006 +++ php-src/ext/standard/array.c Sun Nov 12 01:16:41 2006 @@ -22,7 +22,7 @@ */ -/* $Id: array.c,v 1.199.2.44.2.12 2006/09/19 09:39:14 tony2001 Exp $ */ +/* $Id: array.c,v 1.199.2.44.2.13 2006/11/12 01:16:41 bjori Exp $ */ #include "php.h" #include "php_ini.h" @@ -1770,7 +1770,7 @@ } Z_ARRVAL_PP(stack)->nNextFreeElement = k; zend_hash_rehash(Z_ARRVAL_PP(stack)); - } else if (!key_len) { + } else if (!key_len && index >= Z_ARRVAL_PP(stack)->nNextFreeElement-1) { Z_ARRVAL_PP(stack)->nNextFreeElement = Z_ARRVAL_PP(stack)->nNextFreeElement - 1; } http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.1247.2.920.2.173&r2=1.1247.2.920.2.174&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.1247.2.920.2.173 php-src/NEWS:1.1247.2.920.2.174 --- php-src/NEWS:1.1247.2.920.2.173 Thu Nov 9 19:10:56 2006 +++ php-src/NEWS Sun Nov 12 01:16:41 2006 @@ -21,6 +21,7 @@ (sj at sjaensch dot org, grzegorz dot nosek at netart dot pl, Tony). - Fixed bug #37812 (aggregate_methods_by_list fails to take certain methods). (Hannes) +- Fixed bug #36975 (natcasesort() causes array_pop() to misbehave). (Hannes) - Fixed bug #34066 (recursive array_walk causes segfault). (Tony) 17 Aug 2006, Version 4.4.4 http://cvs.php.net/viewvc.cgi/php-src/ext/standard/tests/array/bug36975.phpt?view=markup&rev=1.1 Index: php-src/ext/standard/tests/array/bug36975.phpt +++ php-src/ext/standard/tests/array/bug36975.phpt --TEST-- Bug#36975 (natcasesort() causes array_pop() to misbehave) --FILE-- <?php $a = array('aa', 'aa', 'bb', 'bb', 'cc', 'cc'); $test = natcasesort($a); if ($test) { echo "natcasesort success!\n"; } $val = array_pop($a); $a[] = $val; var_dump($a); $b = array(1 => 'foo', 0 => 'baz'); array_pop($b); $b[] = 'bar'; array_push($b, 'bar'); print_r($b); $c = array(0, 0, 0, 0, 0); asort($c); array_pop($c); $c[] = 'foo'; $c[] = 'bar'; var_dump($c); ?> --EXPECT-- natcasesort success! array(6) { [0]=> string(2) "aa" [1]=> string(2) "aa" [3]=> string(2) "bb" [2]=> string(2) "bb" [5]=> string(2) "cc" [6]=> string(2) "cc" } Array ( [1] => foo [2] => bar [3] => bar ) array(6) { [4]=> int(0) [3]=> int(0) [2]=> int(0) [1]=> int(0) [5]=> string(3) "foo" [6]=> string(3) "bar" } --UEXPECT-- natcasesort success! array(6) { [0]=> unicode(2) "aa" [1]=> unicode(2) "aa" [3]=> unicode(2) "bb" [2]=> unicode(2) "bb" [5]=> unicode(2) "cc" [6]=> unicode(2) "cc" } Array ( [1] => foo [2] => bar [3] => bar ) array(6) { [4]=> int(0) [3]=> int(0) [2]=> int(0) [1]=> int(0) [5]=> unicode(3) "foo" [6]=> unicode(3) "bar" }

« previous php.cvs (#41492) next »