com php-src: Fixed another assertion fails due to live_range cleaned (ext/phar/tests/003a.phpt): ext/op cache/Optimizer/block_pass.c

From: Date: Mon, 15 Feb 2016 06:38:20 +0000
Subject: com php-src: Fixed another assertion fails due to live_range cleaned (ext/phar/tests/003a.phpt): ext/op cache/Optimizer/block_pass.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-91046@lists.php.net to get a copy of this message
Commit: ab5869400ba5fda3d9718d63f925a513878f0abd Author: Xinchen Hui <laruence@gmail.com> Mon, 15 Feb 2016 14:38:20 +0800 Parents: bddcabed84f8368397c213db09b0a56a7d586bff Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=ab5869400ba5fda3d9718d63f925a513878f0abd Log: Fixed another assertion fails due to live_range cleaned (ext/phar/tests/003a.phpt) Changed paths: M ext/opcache/Optimizer/block_pass.c Diff: diff --git a/ext/opcache/Optimizer/block_pass.c b/ext/opcache/Optimizer/block_pass.c index 14bf84e..df99eb5 100644 --- a/ext/opcache/Optimizer/block_pass.c +++ b/ext/opcache/Optimizer/block_pass.c @@ -954,17 +954,20 @@ static void assemble_code_blocks(zend_cfg *cfg, zend_op_array *op_array) } if (i != j) { - zend_op *opline = new_opcodes; - zend_op *end = opline + len; - - op_array->last_live_range = j; - while (opline != end) { - if ((opline->opcode == ZEND_FREE || opline->opcode == ZEND_FE_FREE) && - opline->extended_value == ZEND_FREE_ON_RETURN) { - ZEND_ASSERT(opline->op2.num < (uint32_t) i); - opline->op2.num = map[opline->op2.num]; + if ((op_array->last_live_range = j)) { + zend_op *opline = new_opcodes; + zend_op *end = opline + len; + while (opline != end) { + if ((opline->opcode == ZEND_FREE || opline->opcode == ZEND_FE_FREE) && + opline->extended_value == ZEND_FREE_ON_RETURN) { + ZEND_ASSERT(opline->op2.num < (uint32_t) i); + opline->op2.num = map[opline->op2.num]; + } + opline++; } - opline++; + } else { + efree(op_array->live_range); + op_array->live_range = NULL; } } free_alloca(map, use_heap);

« previous php.cvs (#91046) next »