diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2018-01-31 22:39:30 +0300 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2018-01-31 22:39:30 +0300 |
| commit | ba298725d194f753c0220bd9ac482e3d257a9ddc (patch) | |
| tree | 5ecb20ba5c368ea2b605c52ac3409492419dba26 /Zend/zend_opcode.c | |
| parent | 3c6e1c2b817179f35d6822d7576866834728561d (diff) | |
| download | php-git-ba298725d194f753c0220bd9ac482e3d257a9ddc.tar.gz | |
Changed CATCH instruction format (extended_value moved into op2, op2 into result, result into extended_value)
Diffstat (limited to 'Zend/zend_opcode.c')
| -rw-r--r-- | Zend/zend_opcode.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index a0301a9add..41b40a2663 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -657,12 +657,16 @@ ZEND_API int pass_two(zend_op_array *op_array) } case ZEND_DECLARE_ANON_CLASS: case ZEND_DECLARE_ANON_INHERITED_CLASS: - case ZEND_CATCH: case ZEND_FE_FETCH_R: case ZEND_FE_FETCH_RW: /* absolute index to relative offset */ opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, opline, opline->extended_value); break; + case ZEND_CATCH: + if (opline->extended_value != ZEND_LAST_CATCH) { + ZEND_PASS_TWO_UPDATE_JMP_TARGET(op_array, opline, opline->op2); + } + break; case ZEND_RETURN: case ZEND_RETURN_BY_REF: if (op_array->fn_flags & ZEND_ACC_GENERATOR) { |
