]> granicus.if.org Git - php/commitdiff
- Fix SEGV when rewind() not set
authorMarcus Boerger <helly@php.net>
Sun, 1 Jan 2006 19:48:11 +0000 (19:48 +0000)
committerMarcus Boerger <helly@php.net>
Sun, 1 Jan 2006 19:48:11 +0000 (19:48 +0000)
ext/spl/spl_iterators.c

index 77ceda133c38945a89abe07daa63c048bcebc3a7..7f6d41dbaa60ab43d61a32ec5d367e142088181e 100755 (executable)
@@ -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);