Revert "Fix bug #67064 in a BC safe way"

This reverts commit 1a4a9eede5.

Conflicts:
	ext/standard/array.c
	ext/standard/tests/array/bug67064.phpt
This commit is contained in:
Bob Weinand 2014-07-30 17:18:05 +02:00
parent f925892920
commit 354ee12b73
3 changed files with 5 additions and 22 deletions

5
NEWS
View File

@ -3,7 +3,10 @@ PHP NEWS
?? ??? 2014, PHP 5.6.0 Release Candidate 4
- Core:
. Fixed bug #67693 (incorrect push to the empty array) (Tjerk)
. Fixed bug #67693 (incorrect push to the empty array). (Tjerk)
- SPL:
. Revert fix for bug #67064 (BC issues). (Bob)
31 Jul 2014, PHP 5.6.0 Release Candidate 3

View File

@ -333,10 +333,7 @@ PHP_FUNCTION(count)
#ifdef HAVE_SPL
/* if not and the object implements Countable we call its count() method */
if (Z_OBJ_HT_P(array)->get_class_entry && instanceof_function(Z_OBJCE_P(array), spl_ce_Countable TSRMLS_CC)) {
zval *mode_zv;
MAKE_STD_ZVAL(mode_zv);
ZVAL_LONG(mode_zv, mode);
zend_call_method_with_1_params(&array, NULL, NULL, "count", &retval, mode_zv);
zend_call_method_with_0_params(&array, NULL, NULL, "count", &retval);
if (retval) {
convert_to_long_ex(&retval);
RETVAL_LONG(Z_LVAL_P(retval));

View File

@ -1,17 +0,0 @@
--TEST--
Bug #67064 (Countable interface prevents using 2nd parameter ($mode) of count() function)
--FILE--
<?php
class Counter implements Countable {
public function count($mode = COUNT_NORMAL) {
var_dump($mode == COUNT_RECURSIVE);
return 1;
}
}
$counter = new Counter;
var_dump(count($counter, COUNT_RECURSIVE));
?>
--EXPECTF--
bool(true)
int(1)