Skip to content

Commit 9332095

Browse files
committed
Revert "Pass correct retval from generator on uncaught exception"
This reverts commit d29998d.
1 parent d29998d commit 9332095

File tree

2 files changed

+8
-16
lines changed

2 files changed

+8
-16
lines changed

Zend/zend_vm_def.h

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7719,19 +7719,15 @@ ZEND_VM_HELPER(zend_dispatch_try_catch_finally_helper, ANY, ANY, uint32_t try_ca
77197719
}
77207720

77217721
/* Uncaught exception */
7722+
if (zend_observer_fcall_op_array_extension != -1) {
7723+
zend_observer_fcall_end(execute_data, EX(return_value));
7724+
}
7725+
cleanup_live_vars(execute_data, op_num, 0);
77227726
if (UNEXPECTED((EX_CALL_INFO() & ZEND_CALL_GENERATOR) != 0)) {
77237727
zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C);
7724-
if (zend_observer_fcall_op_array_extension != -1) {
7725-
zend_observer_fcall_end(execute_data, &generator->retval);
7726-
}
7727-
cleanup_live_vars(execute_data, op_num, 0);
77287728
zend_generator_close(generator, 1);
77297729
ZEND_VM_RETURN();
77307730
} else {
7731-
if (zend_observer_fcall_op_array_extension != -1) {
7732-
zend_observer_fcall_end(execute_data, EX(return_value));
7733-
}
7734-
cleanup_live_vars(execute_data, op_num, 0);
77357731
/* We didn't execute RETURN, and have to initialize return_value */
77367732
if (EX(return_value)) {
77377733
ZVAL_UNDEF(EX(return_value));

Zend/zend_vm_execute.h

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2904,19 +2904,15 @@ static zend_never_inline ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL zend_dispatch_try
29042904
}
29052905

29062906
/* Uncaught exception */
2907+
if (zend_observer_fcall_op_array_extension != -1) {
2908+
zend_observer_fcall_end(execute_data, EX(return_value));
2909+
}
2910+
cleanup_live_vars(execute_data, op_num, 0);
29072911
if (UNEXPECTED((EX_CALL_INFO() & ZEND_CALL_GENERATOR) != 0)) {
29082912
zend_generator *generator = zend_get_running_generator(EXECUTE_DATA_C);
2909-
if (zend_observer_fcall_op_array_extension != -1) {
2910-
zend_observer_fcall_end(execute_data, &generator->retval);
2911-
}
2912-
cleanup_live_vars(execute_data, op_num, 0);
29132913
zend_generator_close(generator, 1);
29142914
ZEND_VM_RETURN();
29152915
} else {
2916-
if (zend_observer_fcall_op_array_extension != -1) {
2917-
zend_observer_fcall_end(execute_data, EX(return_value));
2918-
}
2919-
cleanup_live_vars(execute_data, op_num, 0);
29202916
/* We didn't execute RETURN, and have to initialize return_value */
29212917
if (EX(return_value)) {
29222918
ZVAL_UNDEF(EX(return_value));

0 commit comments

Comments
 (0)