summaryrefslogtreecommitdiff
path: root/ext/spl/spl_array.c
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2005-10-03 09:14:30 +0000
committerMarcus Boerger <helly@php.net>2005-10-03 09:14:30 +0000
commit184309c2e9615e71bcd7bf2fd20421f6d0414bad (patch)
tree9cc3bf5c5f9d066fba2806b4fdfd39c981f1f76d /ext/spl/spl_array.c
parent594fd87ca7f14d527147871d39247f376235254d (diff)
downloadphp-git-184309c2e9615e71bcd7bf2fd20421f6d0414bad.tar.gz
- MFH Fix issue with RecursiveArrayIterator::getChildren()
Diffstat (limited to 'ext/spl/spl_array.c')
-rwxr-xr-xext/spl/spl_array.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c
index e62b2ad10f..f1cb7ab650 100755
--- a/ext/spl/spl_array.c
+++ b/ext/spl/spl_array.c
@@ -1186,6 +1186,10 @@ SPL_METHOD(Array, getChildren)
if (zend_hash_get_current_data_ex(aht, (void **) &entry, &intern->pos) == FAILURE) {
return;
}
+
+ if (Z_TYPE_PP(entry) == IS_OBJECT && instanceof_function(Z_OBJCE_PP(entry), Z_OBJCE_P(getThis()) TSRMLS_CC)) {
+ RETURN_ZVAL(*entry, 0, 0);
+ }
spl_instantiate_arg_ex1(Z_OBJCE_P(getThis()), &return_value, 0, *entry TSRMLS_CC);
}