@@ -3061,6 +3061,7 @@ static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_dispatch_try
3061
3061
cleanup_live_vars(execute_data, op_num, 0);
3062
3062
if (UNEXPECTED((EX_CALL_INFO() & ZEND_CALL_GENERATOR) != 0)) {
3063
3063
zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C);
3064
+ EG(current_execute_data) = EX(prev_execute_data);
3064
3065
zend_generator_close(generator, 1);
3065
3066
ZEND_VM_RETURN();
3066
3067
} else {
@@ -3154,6 +3155,7 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_USER_OPCODE_SPEC_HANDLER(ZEND_
3154
3155
case ZEND_USER_OPCODE_RETURN:
3155
3156
if (UNEXPECTED((EX_CALL_INFO() & ZEND_CALL_GENERATOR) != 0)) {
3156
3157
zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C);
3158
+ EG(current_execute_data) = EX(prev_execute_data);
3157
3159
zend_generator_close(generator, 1);
3158
3160
ZEND_VM_RETURN();
3159
3161
} else {
@@ -4517,6 +4519,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GENERATOR_RETURN_SPEC_CONST_HA
4517
4519
}
4518
4520
}
4519
4521
4522
+ EG(current_execute_data) = EX(prev_execute_data);
4523
+
4520
4524
/* Close the generator to free up resources */
4521
4525
zend_generator_close(generator, 1);
4522
4526
@@ -4562,6 +4566,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GENERATOR_RETURN_SPEC_OBSERVER
4562
4566
4563
4567
zend_observer_fcall_end(generator->execute_data, &generator->retval);
4564
4568
4569
+ EG(current_execute_data) = EX(prev_execute_data);
4570
+
4565
4571
/* Close the generator to free up resources */
4566
4572
zend_generator_close(generator, 1);
4567
4573
@@ -18954,6 +18960,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GENERATOR_RETURN_SPEC_TMP_HAND
18954
18960
}
18955
18961
}
18956
18962
18963
+ EG(current_execute_data) = EX(prev_execute_data);
18964
+
18957
18965
/* Close the generator to free up resources */
18958
18966
zend_generator_close(generator, 1);
18959
18967
@@ -21612,6 +21620,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GENERATOR_RETURN_SPEC_VAR_HAND
21612
21620
}
21613
21621
}
21614
21622
21623
+ EG(current_execute_data) = EX(prev_execute_data);
21624
+
21615
21625
/* Close the generator to free up resources */
21616
21626
zend_generator_close(generator, 1);
21617
21627
@@ -38480,6 +38490,8 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_GENERATOR_RETURN_SPEC_CV_HANDL
38480
38490
}
38481
38491
}
38482
38492
38493
+ EG(current_execute_data) = EX(prev_execute_data);
38494
+
38483
38495
/* Close the generator to free up resources */
38484
38496
zend_generator_close(generator, 1);
38485
38497
0 commit comments