Changeset 1276 in svn for trunk


Ignore:
Timestamp:
2013-06-25T07:08:09Z (2 years ago)
Author:
Xuefer
Message:

optimizer: fix debug build

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/mod_optimizer/xc_optimizer.c

    r1250 r1276  
    2828#   undef Z_OP_CONSTANT
    2929/* Z_OP_CONSTANT is used before pass_two is applied */
    30 #   define Z_OP_CONSTANT(op) op_array->literals[op.constant].constant
     30#   define Z_OP_CONSTANT(op) op_array->literals[(op).constant].constant
    3131#endif
    3232
     
    222222/* }}} */
    223223#ifdef XCACHE_DEBUG
    224 static void op_snprint(char *buf, int size, zend_uchar op_type, znode_op *op) /* {{{ */
     224static void op_snprint(zend_op_array *op_array, char *buf, int size, zend_uchar op_type, znode_op *op) /* {{{ */
    225225{
    226226    switch (op_type) {
     
    231231            TSRMLS_FETCH();
    232232
    233             /* TODO: update for PHP 6 */
    234             php_start_ob_buffer(NULL, 0, 1 TSRMLS_CC);
     233            php_output_start_default(TSRMLS_C);
    235234            php_var_export(&zv, 1 TSRMLS_CC);
    236 
    237             php_ob_get_buffer(&result TSRMLS_CC);
    238             php_end_ob_buffer(0, 0 TSRMLS_CC);
     235            php_output_get_contents(&result TSRMLS_CC);
     236            php_output_end(TSRMLS_C);
     237
    239238            snprintf(buf, size, Z_STRVAL(result));
    240239            zval_dtor(&result);
     
    261260
    262261    default:
    263         snprintf(buf, size, "%d %d", op->op_type, Z_OP(*op).var);
    264     }
    265 }
    266 /* }}} */
    267 static void op_print(int line, zend_op *first, zend_op *end) /* {{{ */
     262        snprintf(buf, size, "%d %d", op_type, Z_OP(*op).var);
     263    }
     264}
     265/* }}} */
     266static void op_print(zend_op_array *op_array, int line, zend_op *first, zend_op *end) /* {{{ */
    268267{
    269268    zend_op *opline;
     
    272271        char buf_1[20];
    273272        char buf_2[20];
    274         op_snprint(buf_r, sizeof(buf_r), Z_OP_TYPE(opline->result), &opline->result);
    275         op_snprint(buf_1, sizeof(buf_1), Z_OP_TYPE(opline->op1),    &opline->op1);
    276         op_snprint(buf_2, sizeof(buf_2), Z_OP_TYPE(opline->op2),    &opline->op2);
     273        op_snprint(op_array, buf_r, sizeof(buf_r), Z_OP_TYPE(opline->result), &opline->result);
     274        op_snprint(op_array, buf_1, sizeof(buf_1), Z_OP_TYPE(opline->op1),    &opline->op1);
     275        op_snprint(op_array, buf_2, sizeof(buf_2), Z_OP_TYPE(opline->op2),    &opline->op2);
    277276        fprintf(stderr,
    278                 "%3d %3d"
     277                "%3d %3lu"
    279278                " %-25s%-5s%-20s%-20s%5lu\r\n"
    280                 , opline->lineno, opline - first + line
     279                , opline->lineno, (long) (opline - first + line)
    281280                , xc_get_opcode(opline->opcode), buf_r, buf_1, buf_2, opline->extended_value);
    282281    }
     
    322321/* }}} */
    323322#ifdef XCACHE_DEBUG
    324 static void bb_print(bb_t *bb, zend_op *opcodes) /* {{{ */
    325 {
    326     int line = bb->opcodes - opcodes;
     323static void bb_print(bb_t *bb, zend_op_array *op_array) /* {{{ */
     324{
     325    int line = bb->opcodes - op_array->opcodes;
    327326    op_flowinfo_t fi;
    328327    zend_op *last = bb->opcodes + bb->count - 1;
     
    344343            , fi.jmpout_op1, fi.jmpout_op2, fi.jmpout_ext, bb->fall, catchbbid, xc_get_opcode(last->opcode)
    345344            );
    346     op_print(line, bb->opcodes, last + 1);
     345    op_print(op_array, line, bb->opcodes, last + 1);
    347346}
    348347/* }}} */
     
    370369/* }}} */
    371370#ifdef XCACHE_DEBUG
    372 static void bbs_print(bbs_t *bbs, zend_op *opcodes) /* {{{ */
     371static void bbs_print(bbs_t *bbs, zend_op_array *op_array) /* {{{ */
    373372{
    374373    int i;
    375374    for (i = 0; i < xc_stack_count(bbs); i ++) {
    376         bb_print(bbs_get(bbs, i), opcodes);
     375        bb_print(bbs_get(bbs, i), op_array);
    377376    }
    378377}
     
    590589    xc_dprint_zend_op_array(op_array, 0 TSRMLS_CC);
    591590#   endif
    592     op_print(0, op_array->opcodes, op_array->opcodes + op_array->last);
     591    op_print(op_array, 0, op_array->opcodes, op_array->opcodes + op_array->last);
    593592#endif
    594593
     
    598597            int i;
    599598#ifdef XCACHE_DEBUG
    600             bbs_print(&bbs, op_array->opcodes);
     599            bbs_print(&bbs, op_array);
    601600#endif
    602601            /* TODO: calc opnum after basic block move */
     
    615614    xc_dprint_zend_op_array(op_array, 0 TSRMLS_CC);
    616615#   endif
    617     op_print(0, op_array->opcodes, op_array->opcodes + op_array->last);
     616    op_print(op_array, 0, op_array->opcodes, op_array->opcodes + op_array->last);
    618617#endif
    619618    return 0;
  • trunk/xcache/xc_compatibility.h

    r1213 r1276  
    111111
    112112#   define Z_CLASS_INFO(className) (className)
     113
     114static inline int php_output_start_default(TSRMLS_D) { php_start_ob_buffer(NULL, 0, 1 TSRMLS_CC); }
     115static inline int php_output_get_contents(zval *p TSRMLS_DC) { php_ob_get_buffer(p TSRMLS_CC); }
     116static inline int php_output_end(TSRMLS_D) { php_end_ob_buffer(0, 0 TSRMLS_CC); }
    113117#endif
    114118
Note: See TracChangeset for help on using the changeset viewer.