diff options
Diffstat (limited to 'ext/spl')
| -rw-r--r-- | ext/spl/spl_array.c | 2 | ||||
| -rw-r--r-- | ext/spl/spl_directory.c | 6 | ||||
| -rw-r--r-- | ext/spl/spl_fixedarray.c | 11 | ||||
| -rw-r--r-- | ext/spl/spl_iterators.c | 8 |
4 files changed, 10 insertions, 17 deletions
diff --git a/ext/spl/spl_array.c b/ext/spl/spl_array.c index 4eab55b7bf..63345e6e33 100644 --- a/ext/spl/spl_array.c +++ b/ext/spl/spl_array.c @@ -617,7 +617,7 @@ static int spl_array_has_dimension_ex(int check_inherited, zval *object, zval *o zend_call_method_with_1_params(object, Z_OBJCE_P(object), &intern->fptr_offset_has, "offsetExists", &rv, offset); zval_ptr_dtor(offset); - if (!Z_ISUNDEF(rv) && zend_is_true(&rv)) { + if (zend_is_true(&rv)) { zval_ptr_dtor(&rv); if (check_empty != 1) { return 1; diff --git a/ext/spl/spl_directory.c b/ext/spl/spl_directory.c index 0554226ad8..776f2ae44d 100644 --- a/ext/spl/spl_directory.c +++ b/ext/spl/spl_directory.c @@ -846,10 +846,8 @@ SPL_METHOD(DirectoryIterator, seek) while (intern->u.dir.index < pos) { int valid = 0; zend_call_method_with_0_params(&EX(This), Z_OBJCE(EX(This)), &intern->u.dir.func_valid, "valid", &retval); - if (!Z_ISUNDEF(retval)) { - valid = zend_is_true(&retval); - zval_ptr_dtor(&retval); - } + valid = zend_is_true(&retval); + zval_ptr_dtor(&retval); if (!valid) { zend_throw_exception_ex(spl_ce_OutOfBoundsException, 0, "Seek position " ZEND_LONG_FMT " is out of range", pos); return; diff --git a/ext/spl/spl_fixedarray.c b/ext/spl/spl_fixedarray.c index 3abd143636..392175f781 100644 --- a/ext/spl/spl_fixedarray.c +++ b/ext/spl/spl_fixedarray.c @@ -507,15 +507,14 @@ static int spl_fixedarray_object_has_dimension(zval *object, zval *offset, int c if (intern->fptr_offset_has) { zval rv; + zend_bool result; + SEPARATE_ARG_IF_REF(offset); zend_call_method_with_1_params(object, intern->std.ce, &intern->fptr_offset_has, "offsetExists", &rv, offset); zval_ptr_dtor(offset); - if (!Z_ISUNDEF(rv)) { - zend_bool result = zend_is_true(&rv); - zval_ptr_dtor(&rv); - return result; - } - return 0; + result = zend_is_true(&rv); + zval_ptr_dtor(&rv); + return result; } return spl_fixedarray_object_has_dimension_helper(intern, offset, check_empty); diff --git a/ext/spl/spl_iterators.c b/ext/spl/spl_iterators.c index 3aca8b1dc5..2ddb7b2a4f 100644 --- a/ext/spl/spl_iterators.c +++ b/ext/spl/spl_iterators.c @@ -3644,12 +3644,8 @@ static int spl_iterator_func_apply(zend_object_iterator *iter, void *puser) /* { apply_info->count++; zend_fcall_info_call(&apply_info->fci, &apply_info->fcc, &retval, NULL); - if (Z_TYPE(retval) != IS_UNDEF) { - result = zend_is_true(&retval) ? ZEND_HASH_APPLY_KEEP : ZEND_HASH_APPLY_STOP; - zval_ptr_dtor(&retval); - } else { - result = ZEND_HASH_APPLY_STOP; - } + result = zend_is_true(&retval) ? ZEND_HASH_APPLY_KEEP : ZEND_HASH_APPLY_STOP; + zval_ptr_dtor(&retval); return result; } /* }}} */ |
