void zend_generator_resume(zend_generator *generator TSRMLS_DC) /* {{{ */
{
+ if (EG(exception)) {
+ return;
+ }
+
/* The generator is already closed, thus can't resume */
if (!generator->execute_data) {
return;
- if (EG(exception)) {
- return;
- }
-
original_in_execution = EG(in_execution);
EG(in_execution) = 1;
ZEND_API void execute(zend_op_array *op_array TSRMLS_DC)
{
- zend_execute_data *execute_data = zend_create_execute_data_from_op_array(op_array, 0 TSRMLS_CC);
-
- execute_ex(execute_data TSRMLS_CC);
+ if (EG(exception)) {
+ return;
+ }
+ execute_ex(zend_create_execute_data_from_op_array(op_array, 0 TSRMLS_CC) TSRMLS_CC);
}
static int ZEND_FASTCALL zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS)
{%INTERNAL_LABELS%}
- if (EG(exception)) {
- return;
- }
-
original_in_execution = EG(in_execution);
EG(in_execution) = 1;
ZEND_API void {%EXECUTOR_NAME%}(zend_op_array *op_array TSRMLS_DC)
{
- zend_execute_data *execute_data = zend_create_execute_data_from_op_array(op_array, 0 TSRMLS_CC);
-
- {%EXECUTOR_NAME%}_ex(execute_data TSRMLS_CC);
+ if (EG(exception)) {
+ return;
+ }
+ {%EXECUTOR_NAME%}_ex(zend_create_execute_data_from_op_array(op_array, 0 TSRMLS_CC) TSRMLS_CC);
}
{%EXTERNAL_EXECUTOR%}