mirror of
https://github.com/php/php-src.git
synced 2024-11-24 10:24:11 +08:00
- Fixed bug #54970 (SplFixedArray::setSize() isn't resizing)
This commit is contained in:
parent
f7cdabd118
commit
47315dfdf6
1
NEWS
1
NEWS
@ -154,6 +154,7 @@ PHP NEWS
|
||||
. Fixed bug #51958 (socket_accept() fails on IPv6 server sockets). (Gustavo)
|
||||
|
||||
- SPL extension:
|
||||
. Fixed bug #54970 (SplFixedArray::setSize() isn't resizing). (Felipe)
|
||||
. Fixed bug #54384 (Dual iterators, GlobIterator, SplFileObject and
|
||||
SplTempFileObject crash when user-space classes don't call the paren
|
||||
constructor). (Gustavo)
|
||||
|
@ -153,6 +153,8 @@ static HashTable* spl_fixedarray_object_get_properties(zval *obj TSRMLS_DC) /* {
|
||||
int i = 0;
|
||||
|
||||
if (intern->array) {
|
||||
int j = zend_hash_num_elements(intern->std.properties);
|
||||
|
||||
for (i = 0; i < intern->array->size; i++) {
|
||||
if (intern->array->elements[i]) {
|
||||
zend_hash_index_update(intern->std.properties, i, (void *)&intern->array->elements[i], sizeof(zval *), NULL);
|
||||
@ -165,6 +167,11 @@ static HashTable* spl_fixedarray_object_get_properties(zval *obj TSRMLS_DC) /* {
|
||||
Z_ADDREF_P(EG(uninitialized_zval_ptr));
|
||||
}
|
||||
}
|
||||
if (j > intern->array->size) {
|
||||
for (i = intern->array->size; i < j; ++i) {
|
||||
zend_hash_index_del(intern->std.properties, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return intern->std.properties;
|
||||
|
33
ext/spl/tests/bug54970.phpt
Normal file
33
ext/spl/tests/bug54970.phpt
Normal file
@ -0,0 +1,33 @@
|
||||
--TEST--
|
||||
Bug #54970 (SplFixedArray::setSize() isn't resizing)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$fa = new SplFixedArray(2);
|
||||
$fa[0] = 'Hello';
|
||||
$fa[1] = 'World';
|
||||
$fa->setSize(3);
|
||||
$fa[2] = '!';
|
||||
var_dump($fa);
|
||||
$fa->setSize(2);
|
||||
var_dump($fa);
|
||||
var_dump($fa->getSize());
|
||||
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
object(SplFixedArray)#%d (3) {
|
||||
[0]=>
|
||||
string(5) "Hello"
|
||||
[1]=>
|
||||
string(5) "World"
|
||||
[2]=>
|
||||
string(1) "!"
|
||||
}
|
||||
object(SplFixedArray)#%d (2) {
|
||||
[0]=>
|
||||
string(5) "Hello"
|
||||
[1]=>
|
||||
string(5) "World"
|
||||
}
|
||||
int(2)
|
Loading…
Reference in New Issue
Block a user