Ignore:
Timestamp:
2012-06-26T15:53:44+02:00 (2 years ago)
Author:
moo
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.