diff options
author | Xinchen Hui <laruence@gmail.com> | 2015-12-18 17:37:40 +0800 |
---|---|---|
committer | Xinchen Hui <laruence@gmail.com> | 2015-12-18 17:37:40 +0800 |
commit | 40702799b5f08b093477098881b6e0cfcb3ea411 (patch) | |
tree | 99c81f81ff526991e56cca6eeb025144d8229c7a /ext/opcache | |
parent | 940c68b55d4241f9f34d4f71064f5f12a44e8d3d (diff) | |
download | php-git-40702799b5f08b093477098881b6e0cfcb3ea411.tar.gz |
Improved fix for #71127
Diffstat (limited to 'ext/opcache')
-rw-r--r-- | ext/opcache/Optimizer/pass1_5.c | 5 | ||||
-rw-r--r-- | ext/opcache/Optimizer/zend_optimizer.h | 3 | ||||
-rw-r--r-- | ext/opcache/tests/bug71127.phpt | 1 |
3 files changed, 5 insertions, 4 deletions
diff --git a/ext/opcache/Optimizer/pass1_5.c b/ext/opcache/Optimizer/pass1_5.c index f252117de7..4229f13ebe 100644 --- a/ext/opcache/Optimizer/pass1_5.c +++ b/ext/opcache/Optimizer/pass1_5.c @@ -16,9 +16,8 @@ if (ZEND_OPTIMIZER_PASS_1 & OPTIMIZATION_LEVEL) { int i = 0; zend_op *opline = op_array->opcodes; zend_op *end = opline + op_array->last; - /* bug #71127* - zend_bool collect_constants = (op_array == &script->main_op_array); */ - zend_bool collect_constants = 0; + zend_bool collect_constants = (ZEND_OPTIMIZER_PASS_15 & OPTIMIZATION_LEVEL)? + (op_array == &script->main_op_array) : 0; while (opline < end) { switch (opline->opcode) { diff --git a/ext/opcache/Optimizer/zend_optimizer.h b/ext/opcache/Optimizer/zend_optimizer.h index fc6ec4357d..f4e441790f 100644 --- a/ext/opcache/Optimizer/zend_optimizer.h +++ b/ext/opcache/Optimizer/zend_optimizer.h @@ -39,9 +39,10 @@ #define ZEND_OPTIMIZER_PASS_12 (1<<11) #define ZEND_OPTIMIZER_PASS_13 (1<<12) #define ZEND_OPTIMIZER_PASS_14 (1<<13) +#define ZEND_OPTIMIZER_PASS_15 (1<<14) /* Collect constants */ #define ZEND_OPTIMIZER_ALL_PASSES 0xFFFFFFFF -#define DEFAULT_OPTIMIZATION_LEVEL "0xFFFFFFFF" +#define DEFAULT_OPTIMIZATION_LEVEL "0xFFFFBFFF" #endif diff --git a/ext/opcache/tests/bug71127.phpt b/ext/opcache/tests/bug71127.phpt index 78c5535062..5770aea1fb 100644 --- a/ext/opcache/tests/bug71127.phpt +++ b/ext/opcache/tests/bug71127.phpt @@ -3,6 +3,7 @@ Bug #71127 (Define in auto_prepend_file is overwrite) --INI-- opcache.enable=1 opcache.enable_cli=1 +opcache.optimization_level=0xFFFFBFFF --SKIPIF-- <?php if (!extension_loaded('Zend OPcache')) die("skip"); ?> --FILE-- |