summaryrefslogtreecommitdiff
path: root/ext/spl
diff options
context:
space:
mode:
Diffstat (limited to 'ext/spl')
-rw-r--r--ext/spl/spl_array.c2
-rw-r--r--ext/spl/spl_directory.c6
-rw-r--r--ext/spl/spl_fixedarray.c11
-rw-r--r--ext/spl/spl_iterators.c8
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;
}
/* }}} */