diff options
-rwxr-xr-x | ext/spl/spl_iterators.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c index 6baff4ff22..7b02143aff 100755 --- a/ext/spl/spl_iterators.c +++ b/ext/spl/spl_iterators.c @@ -2085,7 +2085,9 @@ PHP_FUNCTION(iterator_count) 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) { count++; iter->funcs->move_forward(iter TSRMLS_CC); |