diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c index f4dd33b95cc..8408cc32f47 100644 --- a/Zend/zend_generators.c +++ b/Zend/zend_generators.c @@ -125,7 +125,8 @@ ZEND_API void zend_generator_close(zend_generator *generator, zend_bool finished /* always free the CV's, in the symtable are only not-free'd IS_INDIRECT's */ zend_free_compiled_variables(execute_data); - if (EX_CALL_INFO() & ZEND_CALL_RELEASE_THIS) { + if ((EX_CALL_INFO() & ZEND_CALL_RELEASE_THIS) && + EXPECTED(GC_TYPE(Z_OBJ(execute_data->This)) == IS_OBJECT)) { OBJ_RELEASE(Z_OBJ(execute_data->This)); }