From: Dmitry Stogov Date: Wed, 18 Nov 2015 20:03:20 +0000 (+0300) Subject: minor fixes X-Git-Tag: php-7.1.0alpha1~713 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=df63ec564e1c054fc9d51144fed6c794aee7569a;p=php minor fixes --- diff --git a/ext/opcache/Optimizer/block_pass.c b/ext/opcache/Optimizer/block_pass.c index c3508267ef..6de5dc638a 100644 --- a/ext/opcache/Optimizer/block_pass.c +++ b/ext/opcache/Optimizer/block_pass.c @@ -166,7 +166,7 @@ static void zend_dump_op(const zend_op_array *op_array, const zend_code_block *b fprintf(stderr, "\n"); } -static void zend_dump_op_array(const zend_op_array *op_array, const zend_cfg *cfg) +static void zend_dump_op_array(const zend_op_array *op_array, const zend_cfg *cfg, int all) { int i; @@ -174,7 +174,7 @@ static void zend_dump_op_array(const zend_op_array *op_array, const zend_cfg *cf zend_code_block *block; for (block = cfg->blocks; block; block = block->next) { - if (block->access) { + if (all || block->access) { const zend_op *opline = block->start_opline; const zend_op *end = opline + block->len; int printed = 0; @@ -514,7 +514,7 @@ static int find_code_blocks(zend_op_array *op_array, zend_cfg *cfg, zend_optimiz } } cur_block->len = end - cur_block->start_opline; - cur_block->next = &blocks[op_array->last + 1]; + cur_block->next = NULL; print_block(cur_block, op_array->opcodes, ""); return 1; @@ -2107,7 +2107,7 @@ static void zend_t_usage(zend_cfg *cfg, zend_op_array *op_array, zend_bitset use } if (printed) { fprintf(stderr, "\n"); - zend_dump_op_array(op_array, cfg); + zend_dump_op_array(op_array, cfg, 0); } } #endif @@ -2249,7 +2249,7 @@ void optimize_cfg(zend_op_array *op_array, zend_optimizer_ctx *ctx) #if DEBUG_BLOCKPASS fprintf(stderr, "\nBEFORE-BLOCK-PASS: %s:\n", op_array->function_name ? op_array->function_name->val : "(null)"); - zend_dump_op_array(op_array, &cfg); + zend_dump_op_array(op_array, &cfg, 1); #endif if (op_array->last_var || op_array->T) { @@ -2294,7 +2294,7 @@ void optimize_cfg(zend_op_array *op_array, zend_optimizer_ctx *ctx) #if DEBUG_BLOCKPASS fprintf(stderr, "\nAFTER-BLOCK-PASS: %s:\n", op_array->function_name ? op_array->function_name->val : "(null)"); - zend_dump_op_array(op_array, &cfg); + zend_dump_op_array(op_array, &cfg, 0); #endif /* Destroy CFG */ diff --git a/ext/opcache/Optimizer/nop_removal.c b/ext/opcache/Optimizer/nop_removal.c index 52967d16fd..4f6983c795 100644 --- a/ext/opcache/Optimizer/nop_removal.c +++ b/ext/opcache/Optimizer/nop_removal.c @@ -88,9 +88,13 @@ void zend_optimizer_nop_removal(zend_op_array *op_array) case ZEND_ASSERT_CHECK: ZEND_SET_OP_JMP_ADDR(new_opline, new_opline->op2, ZEND_OP2_JMP_ADDR(opline)); break; + case ZEND_CATCH: + if (!opline->result.num) { + new_opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, new_opline, ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_value)); + } + break; case ZEND_FE_FETCH_R: case ZEND_FE_FETCH_RW: - case ZEND_CATCH: new_opline->extended_value = ZEND_OPLINE_NUM_TO_OFFSET(op_array, new_opline, ZEND_OFFSET_TO_OPLINE_NUM(op_array, opline, opline->extended_value)); break; }