diff options
| author | Dmitry Stogov <dmitry@zend.com> | 2014-02-18 01:41:23 +0400 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@zend.com> | 2014-02-18 01:41:23 +0400 |
| commit | a0fe8e5a91024710372625555b7d84dc9726e2da (patch) | |
| tree | d56a60ba9a7e37ca1e79c2a2ea3fdf63166791ee /Zend/zend_opcode.c | |
| parent | 4d6ff31cb31c661e3098d9dc07b156264dd39615 (diff) | |
| download | php-git-a0fe8e5a91024710372625555b7d84dc9726e2da.tar.gz | |
Use better data structures (incomplete)
Diffstat (limited to 'Zend/zend_opcode.c')
| -rw-r--r-- | Zend/zend_opcode.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index 8a9b26d3e7..ce7084817a 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -695,9 +695,16 @@ ZEND_API int pass_two(zend_op_array *op_array TSRMLS_DC) while (opline < end) { if (opline->op1_type == IS_CONST) { opline->op1.zv = &op_array->literals[opline->op1.constant].constant; + } else if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) { + opline->op1.var = (zend_uint)EX_VAR_NUM_2(NULL, op_array->last_var + opline->op1.var); } if (opline->op2_type == IS_CONST) { opline->op2.zv = &op_array->literals[opline->op2.constant].constant; + } else if (opline->op2_type & (IS_VAR|IS_TMP_VAR)) { + opline->op2.var = (zend_uint)EX_VAR_NUM_2(NULL, op_array->last_var + opline->op2.var); + } + if (opline->result_type & (IS_VAR|IS_TMP_VAR)) { + opline->result.var = (zend_uint)EX_VAR_NUM_2(NULL, op_array->last_var + opline->result.var); } switch (opline->opcode) { case ZEND_GOTO: |
