summaryrefslogtreecommitdiff
path: root/Zend/zend_generators.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2020-09-18 12:55:58 +0300
committerDmitry Stogov <dmitry@zend.com>2020-09-18 12:55:58 +0300
commitd5d31ea3b32a75697bb2c2ee95acedd29ef69708 (patch)
tree2ee893002d4272df1395cd0943198254cafd557b /Zend/zend_generators.c
parentb4c2670f857bd23c8b0922bd7f0f4a25d91f28d2 (diff)
downloadphp-git-d5d31ea3b32a75697bb2c2ee95acedd29ef69708.tar.gz
Cleanup observer API and add JIT support
Diffstat (limited to 'Zend/zend_generators.c')
-rw-r--r--Zend/zend_generators.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/Zend/zend_generators.c b/Zend/zend_generators.c
index baca12f66b..4e2351869d 100644
--- a/Zend/zend_generators.c
+++ b/Zend/zend_generators.c
@@ -859,20 +859,11 @@ try_again:
if (!ZEND_OBSERVER_ENABLED) {
zend_execute_ex(generator->execute_data);
} else {
- zend_op_array *op_array = &generator->execute_data->func->op_array;
- void *observer_handlers = ZEND_OBSERVER_HANDLERS(op_array);
- if (!observer_handlers) {
- zend_observer_fcall_install((zend_function *)op_array);
- observer_handlers = ZEND_OBSERVER_HANDLERS(op_array);
- }
- ZEND_ASSERT(observer_handlers);
- if (observer_handlers != ZEND_OBSERVER_NOT_OBSERVED) {
- zend_observe_fcall_begin(observer_handlers, generator->execute_data);
- }
+ zend_observer_generator_resume(generator->execute_data);
zend_execute_ex(generator->execute_data);
if (generator->execute_data) {
/* On the final return, this will be called from ZEND_GENERATOR_RETURN */
- zend_observer_maybe_fcall_call_end(generator->execute_data, &generator->value);
+ zend_observer_fcall_end(generator->execute_data, &generator->value);
}
}
generator->flags &= ~ZEND_GENERATOR_CURRENTLY_RUNNING;