summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2006-01-01 19:48:11 +0000
committerMarcus Boerger <helly@php.net>2006-01-01 19:48:11 +0000
commitd6ee7d1d9aa49bb52fb13ed05244478c800b932d (patch)
tree4b48bd28a1f108d601f85e822fb6367f7e574c36
parent9b0190032173ba533a514d8837a8eb28b8fee523 (diff)
downloadphp-git-d6ee7d1d9aa49bb52fb13ed05244478c800b932d.tar.gz
- Fix SEGV when rewind() not set
-rwxr-xr-xext/spl/spl_iterators.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c
index 77ceda133c..7f6d41dbaa 100755
--- a/ext/spl/spl_iterators.c
+++ b/ext/spl/spl_iterators.c
@@ -2045,7 +2045,9 @@ PHP_FUNCTION(iterator_to_array)
iter = Z_OBJCE_P(obj)->get_iterator(Z_OBJCE_P(obj), obj TSRMLS_CC);
- iter->funcs->rewind(iter TSRMLS_CC);
+ if (iter->funcs->rewind) {
+ iter->funcs->rewind(iter TSRMLS_CC);
+ }
while (iter->funcs->valid(iter TSRMLS_CC) == SUCCESS) {
key_type = iter->funcs->get_current_key(iter, &str_key, &str_key_len, &int_key TSRMLS_CC);
iter->funcs->get_current_data(iter, &data TSRMLS_CC);