diff options
author | Haitao Lv <i@lvht.net> | 2018-02-12 11:20:24 +0800 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2018-02-20 10:46:41 +0300 |
commit | 764e231cc5fd400e78ee3a632273fadb8ed38bc2 (patch) | |
tree | cd7c0a1a9d1932bee44b75d9994c2ebab4238113 /Zend/zend_vm_gen.php | |
parent | f63393aee8f3c3a8a3191064f28a4375107b30aa (diff) | |
download | php-git-764e231cc5fd400e78ee3a632273fadb8ed38bc2.tar.gz |
fix ZEND_VM_SET_OPCODE_HANDLER cannot set user opcode handler
Diffstat (limited to 'Zend/zend_vm_gen.php')
-rw-r--r-- | Zend/zend_vm_gen.php | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php index 404121317e..aa8df9d95d 100644 --- a/Zend/zend_vm_gen.php +++ b/Zend/zend_vm_gen.php @@ -2646,10 +2646,11 @@ function gen_vm($def, $skel) { // Generate zend_vm_get_opcode_handler() function out($f, "ZEND_API void ZEND_FASTCALL zend_vm_set_opcode_handler(zend_op* op)\n"); out($f, "{\n"); + out($f, "\tzend_uchar opcode = zend_user_opcodes[op->opcode];\n"); if (!ZEND_VM_SPEC) { - out($f, "\top->handler = zend_vm_get_opcode_handler(op->opcode, op);\n"); + out($f, "\top->handler = zend_vm_get_opcode_handler(opcode, op);\n"); } else { - out($f, "\tuint32_t spec = zend_spec_handlers[op->opcode];\n\n"); + out($f, "\tuint32_t spec = zend_spec_handlers[opcode];\n\n"); out($f, "\tif (spec & SPEC_RULE_COMMUTATIVE) {\n"); out($f, "\t\tif (op->op1_type < op->op2_type) {\n"); out($f, "\t\t\tzend_swap_operands(op);\n"); |