diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2015-07-09 23:20:50 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2015-07-09 23:20:50 +0300 |
| commit | 8c3f701eebfa92d761bb368cfa8c2d1ccf821b9d (patch) | |
| tree | 27b4b3a7e25b4f8785ff5205ea7c3c91ebe16330 /Zend/zend_vm_execute.h | |
| parent | 788c4c852d0b0523eb918039e4ac3247f5c8a6d0 (diff) | |
| download | php-git-8c3f701eebfa92d761bb368cfa8c2d1ccf821b9d.tar.gz | |
Fixed exception catching on break/continue
Fixed "finaly" handling on exception in "return" statement
Diffstat (limited to 'Zend/zend_vm_execute.h')
| -rw-r--r-- | Zend/zend_vm_execute.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index bdfce50cf1..95c1b5dfaa 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -1500,12 +1500,12 @@ static ZEND_OPCODE_HANDLER_RET ZEND_FASTCALL ZEND_HANDLE_EXCEPTION_SPEC_HANDLER( } } - if (catch_op_num || finally_op_num) { + if (catch_op_num) { if (EX(func)->op_array.opcodes[op_num].opcode == ZEND_VERIFY_RETURN_TYPE - || (EX(func)->op_array.opcodes[op_num].opcode == ZEND_FREE && (EX(func)->op_array.opcodes[op_num].extended_value & ZEND_FREE_ON_JUMP)) - || (EX(func)->op_array.opcodes[op_num].opcode == ZEND_FE_FREE && (EX(func)->op_array.opcodes[op_num].extended_value & ZEND_FREE_ON_JUMP)) + || (EX(func)->op_array.opcodes[op_num].opcode == ZEND_FREE && (EX(func)->op_array.opcodes[op_num].extended_value & ZEND_FREE_ON_RETURN)) + || (EX(func)->op_array.opcodes[op_num].opcode == ZEND_FE_FREE && (EX(func)->op_array.opcodes[op_num].extended_value & ZEND_FREE_ON_RETURN)) ) { - catch_op_num = finally_op_num = 0; + catch_op_num = 0; } } |
