summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/spl/spl_fixedarray.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/ext/spl/spl_fixedarray.c b/ext/spl/spl_fixedarray.c
index d55b356c13..a20caaac84 100644
--- a/ext/spl/spl_fixedarray.c
+++ b/ext/spl/spl_fixedarray.c
@@ -912,6 +912,10 @@ static void spl_fixedarray_it_move_forward(zend_object_iterator *iter TSRMLS_DC)
SPL_METHOD(SplFixedArray, key)
{
spl_fixedarray_object *intern = (spl_fixedarray_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
RETURN_LONG(intern->current);
}
@@ -922,6 +926,10 @@ SPL_METHOD(SplFixedArray, key)
SPL_METHOD(SplFixedArray, next)
{
spl_fixedarray_object *intern = (spl_fixedarray_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
intern->current++;
}
@@ -932,6 +940,10 @@ SPL_METHOD(SplFixedArray, next)
SPL_METHOD(SplFixedArray, valid)
{
spl_fixedarray_object *intern = (spl_fixedarray_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
RETURN_BOOL(intern->current >= 0 && intern->array && intern->current < intern->array->size);
}
@@ -942,6 +954,10 @@ SPL_METHOD(SplFixedArray, valid)
SPL_METHOD(SplFixedArray, rewind)
{
spl_fixedarray_object *intern = (spl_fixedarray_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
intern->current = 0;
}
@@ -953,7 +969,10 @@ SPL_METHOD(SplFixedArray, current)
{
zval *zindex, **value_pp;
spl_fixedarray_object *intern = (spl_fixedarray_object*)zend_object_store_get_object(getThis() TSRMLS_CC);
-
+
+ if (zend_parse_parameters_none() == FAILURE) {
+ return;
+ }
ALLOC_INIT_ZVAL(zindex);
ZVAL_LONG(zindex, intern->current);