mirror of
https://github.com/php/php-src.git
synced 2025-08-20 09:24:05 +02:00
Merge branch 'PHP-7.2'
This commit is contained in:
commit
80881194a1
3 changed files with 23 additions and 19 deletions
|
@ -3366,7 +3366,7 @@ SPL_METHOD(AppendIterator, __construct)
|
|||
Append an iterator */
|
||||
SPL_METHOD(AppendIterator, append)
|
||||
{
|
||||
spl_dual_it_object *intern, *appender;
|
||||
spl_dual_it_object *intern;
|
||||
zval *it;
|
||||
|
||||
SPL_FETCH_AND_CHECK_DUAL_IT(intern, getThis());
|
||||
|
@ -3378,11 +3378,6 @@ SPL_METHOD(AppendIterator, append)
|
|||
spl_array_iterator_append(&intern->u.append.zarrayit, it);
|
||||
intern->u.append.iterator->funcs->move_forward(intern->u.append.iterator);
|
||||
}else{
|
||||
appender = Z_SPLDUAL_IT_P(it);
|
||||
if (appender->dit_type == DIT_AppendIterator) {
|
||||
spl_array_iterator_append(&intern->u.append.zarrayit, &appender->u.append.zarrayit);
|
||||
return;
|
||||
}
|
||||
spl_array_iterator_append(&intern->u.append.zarrayit, it);
|
||||
}
|
||||
|
||||
|
|
|
@ -1,13 +0,0 @@
|
|||
--TEST--
|
||||
Bug #74977: Recursion leads to crash
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$iterator = new AppendIterator(array("A","A","A"));
|
||||
$iterator->append($iterator);
|
||||
var_dump($iterator);
|
||||
?>
|
||||
--EXPECTF--
|
||||
object(AppendIterator)#1 (0) {
|
||||
}
|
||||
|
22
ext/spl/tests/bug75155.phpt
Normal file
22
ext/spl/tests/bug75155.phpt
Normal file
|
@ -0,0 +1,22 @@
|
|||
--TEST--
|
||||
Bug #75155: AppendIterator::append() is broken when appending another AppendIterator
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$array_a = new ArrayIterator(array('a', 'b', 'c'));
|
||||
$array_b = new ArrayIterator(array('d', 'e', 'f'));
|
||||
|
||||
$iterator = new AppendIterator;
|
||||
$iterator->append($array_a);
|
||||
|
||||
$iterator2 = new AppendIterator;
|
||||
$iterator2->append($iterator);
|
||||
$iterator2->append($array_b);
|
||||
|
||||
foreach ($iterator2 as $current) {
|
||||
echo $current;
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
abcdef
|
Loading…
Add table
Add a link
Reference in a new issue