summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xext/spl/spl_array.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c
index 901bd35552..34645a18ef 100755
--- a/ext/spl/spl_array.c
+++ b/ext/spl/spl_array.c
@@ -716,7 +716,7 @@ SPL_METHOD(Array, seek)
zend_hash_internal_pointer_reset_ex(aht, &intern->pos);
- while (position-- > 0 && spl_array_next(intern TSRMLS_CC));
+ while (position-- > 0 && spl_array_next(intern TSRMLS_CC) == SUCCESS);
} /* }}} */
int spl_array_object_count_elements(zval *object, long *count TSRMLS_DC) /* {{{ */
@@ -737,9 +737,8 @@ int spl_array_object_count_elements(zval *object, long *count TSRMLS_DC) /* {{{
pos = intern->pos;
*count = 0;
zend_hash_internal_pointer_reset_ex(aht, &intern->pos);
- while(intern->pos) {
+ while(intern->pos && spl_array_next(intern TSRMLS_CC) == SUCCESS) {
(*count)++;
- spl_array_next(intern TSRMLS_CC);
}
intern->pos = pos;
return SUCCESS;