Changeset 930 in svn for trunk/processor/processor.m4


Ignore:
Timestamp:
2012-06-26T13:53:44Z (3 years ago)
Author:
Xuefer
Message:

fix disassembler for 2.4 literal

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/processor/processor.m4

    r917 r930  
    161161    IFDASM(`
    162162        pushdefFUNC_NAME(`zval')
    163         FUNC_NAME (dst, src[0] TSRMLS_CC);
     163        FUNC_NAME (dasm, dst, src[0] TSRMLS_CC);
    164164        popdef(`FUNC_NAME')
    165165    ', `
     
    321321    IFDASM(`
    322322        pushdefFUNC_NAME(`zend_trait_alias')
    323         FUNC_NAME (dst, src[0] TSRMLS_CC);
     323        FUNC_NAME (dasm, dst, src[0] TSRMLS_CC);
    324324        popdef(`FUNC_NAME')
    325325    ', `
     
    334334    IFDASM(`
    335335        pushdefFUNC_NAME(`zend_trait_precedence')
    336         FUNC_NAME (dst, src[0] TSRMLS_CC);
     336        FUNC_NAME (dasm, dst, src[0] TSRMLS_CC);
    337337        popdef(`FUNC_NAME')
    338338    ', `
     
    523523                    zval *zv;
    524524                    ALLOC_INIT_ZVAL(zv);
    525                     *zv = src->$1.literal->constant;
     525                    *zv = dasm->active_op_array_src->literals[src->$1.constant].constant;
    526526                    zval_copy_ctor(zv);
    527527                    add_assoc_zval_ex(dst, ZEND_STRS("$1.constant"), zv);
     
    695695        processor->active_op_array_src = src;
    696696    ')
     697    IFDASM(`
     698        dasm->active_op_array_src = src;
     699    ')
    697700    {
    698701    IFRESTORE(`
     
    737740                pushdef(`UNION_znode_op_literal', `
    738741                    if (opline->$1_type == IS_CONST) {
    739                         opline->$1.constant = opline->$1.literal - src->literals;
    740                         opline->$1.literal = &dst->literals[opline->$1.constant];
     742                        opline->$1.literal = &dst->literals[opline->$1.literal - src->literals];
    741743                    }
    742744                ')
     
    751753#endif
    752754                    case ZEND_JMP:
    753                         Z_OP(opline->op1).jmp_addr = dst->opcodes + (Z_OP(opline->op1).jmp_addr - src->opcodes);
     755                        Z_OP(opline->op1).jmp_addr = &dst->opcodes[Z_OP(opline->op1).jmp_addr - src->opcodes];
    754756                        break;
    755757
     
    764766            case ZEND_JMP_SET_VAR:
    765767#endif
    766                         Z_OP(opline->op2).jmp_addr = dst->opcodes + (Z_OP(opline->op2).jmp_addr - src->opcodes);
     768                        Z_OP(opline->op2).jmp_addr = &dst->opcodes[Z_OP(opline->op2).jmp_addr - src->opcodes];
    767769                        break;
    768770
     
    971973        processor->active_op_array_src = NULL;
    972974    ')
     975    IFDASM(`
     976        dasm->active_op_array_src = NULL;
     977    ')
    973978')
    974979dnl }}}
Note: See TracChangeset for help on using the changeset viewer.