com php-src: Avoid dangerous optimization: ext/opcache/Optimize r/block_pass.c

From: Date: Mon, 06 Jul 2015 13:52:38 +0000
Subject: com php-src: Avoid dangerous optimization: ext/opcache/Optimize r/block_pass.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-87764@lists.php.net to get a copy of this message
Commit: 436b01e3797860add57a524b4492f8451b60ac68 Author: Dmitry Stogov <dmitry@zend.com> Mon, 6 Jul 2015 16:52:38 +0300 Parents: 1a9f4f90da8fc6e91a1ac38addfa68556de89d4e Branches: master Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=436b01e3797860add57a524b4492f8451b60ac68 Log: Avoid dangerous optimization 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 ee9bda6..e1e07ea 100644 --- a/ext/opcache/Optimizer/block_pass.c +++ b/ext/opcache/Optimizer/block_pass.c @@ -762,7 +762,8 @@ static void zend_optimize_block(zend_code_block *block, zend_op_array *op_array, */ if (opline->opcode == ZEND_IS_EQUAL || opline->opcode == ZEND_IS_NOT_EQUAL || - opline->opcode == ZEND_CASE) { + /* CASE variable will be deleted later by FREE, so we can't optimize it */ + (opline->opcode == ZEND_CASE && (ZEND_OP1_TYPE(opline) & (IS_CONST|IS_CV)))) { if (ZEND_OP1_TYPE(opline) == IS_CONST && (Z_TYPE(ZEND_OP1_LITERAL(opline)) == IS_FALSE || Z_TYPE(ZEND_OP1_LITERAL(opline)) == IS_TRUE)) {

« previous php.cvs (#87764) next »