Skip to content

Commit c1fcf2d

Browse files
committed
Promote warnings to errors in array_pad()
1 parent 7dcbcd4 commit c1fcf2d

File tree

2 files changed

+14
-9
lines changed

2 files changed

+14
-9
lines changed

ext/standard/array.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4325,7 +4325,7 @@ PHP_FUNCTION(array_reverse)
43254325
}
43264326
/* }}} */
43274327

4328-
/* {{{ proto array|false array_pad(array input, int pad_size, mixed pad_value)
4328+
/* {{{ proto array array_pad(array input, int pad_size, mixed pad_value)
43294329
Returns a copy of input array padded with pad_value to size pad_size */
43304330
PHP_FUNCTION(array_pad)
43314331
{
@@ -4349,8 +4349,8 @@ PHP_FUNCTION(array_pad)
43494349
input_size = zend_hash_num_elements(Z_ARRVAL_P(input));
43504350
pad_size_abs = ZEND_ABS(pad_size);
43514351
if (pad_size_abs < 0 || pad_size_abs - input_size > Z_L(1048576)) {
4352-
php_error_docref(NULL, E_WARNING, "You may only pad up to 1048576 elements at a time");
4353-
RETURN_FALSE;
4352+
zend_throw_error(NULL, "You may only pad up to 1048576 elements at a time");
4353+
return;
43544354
}
43554355

43564356
if (input_size >= pad_size_abs) {

ext/standard/tests/array/array_pad.phpt

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,17 @@ var_dump(array_pad(array("", -1, 2.0), 5, array()));
1212
var_dump(array_pad(array("", -1, 2.0), 2, array()));
1313
var_dump(array_pad(array("", -1, 2.0), -3, array()));
1414
var_dump(array_pad(array("", -1, 2.0), -4, array()));
15-
var_dump(array_pad(array("", -1, 2.0), 2000000, 0));
1615

17-
echo "Done\n";
16+
try {
17+
var_dump(array_pad(array("", -1, 2.0), 2000000, 0));
18+
} catch (Error $e) {
19+
echo $e->getMessage() . "\n";
20+
}
21+
1822
?>
19-
--EXPECTF--
23+
24+
DONE
25+
--EXPECT--
2026
array(1) {
2127
[0]=>
2228
int(0)
@@ -80,7 +86,6 @@ array(4) {
8086
[3]=>
8187
float(2)
8288
}
89+
You may only pad up to 1048576 elements at a time
8390

84-
Warning: array_pad(): You may only pad up to 1048576 elements at a time in %s on line %d
85-
bool(false)
86-
Done
91+
DONE

0 commit comments

Comments
 (0)