diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2015-04-16 12:16:03 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2015-04-16 12:16:03 +0300 |
| commit | a759967dd1c09f8553bd5dedc82673fec15acb80 (patch) | |
| tree | a9472d95840a65954cde301e94936763216fd50e /Zend/zend_generators.c | |
| parent | ec8671d4291939ce8f49c731bf4d0730a2ed1c8e (diff) | |
| download | php-git-a759967dd1c09f8553bd5dedc82673fec15acb80.tar.gz | |
Mark call frames to closures with ZEND_CALL_CLOSURE flag to avoid expensive check at zend_leave_helper()
Diffstat (limited to 'Zend/zend_generators.c')
| -rw-r--r-- | Zend/zend_generators.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c index 98603200bf..7d2472a145 100644 --- a/Zend/zend_generators.c +++ b/Zend/zend_generators.c @@ -103,7 +103,6 @@ ZEND_API void zend_generator_close(zend_generator *generator, zend_bool finished if (generator->execute_data) { zend_execute_data *execute_data = generator->execute_data; - zend_op_array *op_array = &execute_data->func->op_array; if (!execute_data->symbol_table) { zend_free_compiled_variables(execute_data); @@ -131,8 +130,8 @@ ZEND_API void zend_generator_close(zend_generator *generator, zend_bool finished } /* Free closure object */ - if (op_array->fn_flags & ZEND_ACC_CLOSURE) { - OBJ_RELEASE((zend_object *) op_array->prototype); + if (EX_CALL_INFO() & ZEND_CALL_CLOSURE) { + OBJ_RELEASE((zend_object *) EX(func)->common.prototype); } efree(generator->stack); |
