mirror of
https://github.com/php/php-src.git
synced 2026-04-05 07:02:33 +02:00
Merge branch 'PHP-5.5'
* PHP-5.5: Fixed issue #79 (Optimization Problem/Bug) fix coverage data for the opcache optimizer
This commit is contained in:
@@ -1312,6 +1312,12 @@ static void zend_jmp_optimization(zend_code_block *block, zend_op_array *op_arra
|
||||
if (ZEND_OP1_TYPE(last_op) == IS_CONST) {
|
||||
zval_copy_ctor(&ZEND_OP1_LITERAL(last_op));
|
||||
}
|
||||
#else
|
||||
if (ZEND_OP1_TYPE(last_op) == IS_CONST) {
|
||||
zval zv = ZEND_OP1_LITERAL(last_op);
|
||||
zval_copy_ctor(&zv);
|
||||
last_op->op1.constant = zend_optimizer_add_literal(op_array, &zv TSRMLS_CC);
|
||||
}
|
||||
#endif
|
||||
del_source(block, block->op1_to);
|
||||
if (block->op1_to->op2_to) {
|
||||
@@ -1342,6 +1348,12 @@ static void zend_jmp_optimization(zend_code_block *block, zend_op_array *op_arra
|
||||
if (ZEND_OP1_TYPE(last_op) == IS_CONST) {
|
||||
zval_copy_ctor(&ZEND_OP1_LITERAL(last_op));
|
||||
}
|
||||
#else
|
||||
if (ZEND_OP1_TYPE(last_op) == IS_CONST) {
|
||||
zval zv = ZEND_OP1_LITERAL(last_op);
|
||||
zval_copy_ctor(&zv);
|
||||
last_op->op1.constant = zend_optimizer_add_literal(op_array, &zv TSRMLS_CC);
|
||||
}
|
||||
#endif
|
||||
del_source(block, block->op1_to);
|
||||
block->op1_to = NULL;
|
||||
|
||||
34
ext/opcache/tests/issue0079.phpt
Normal file
34
ext/opcache/tests/issue0079.phpt
Normal file
@@ -0,0 +1,34 @@
|
||||
--TEST--
|
||||
ISSUE #79 (Optimization Problem/Bug)
|
||||
--INI--
|
||||
opcache.enable=1
|
||||
opcache.enable_cli=1
|
||||
opcache.optimization_level=-1
|
||||
--SKIPIF--
|
||||
<?php require_once('skipif.inc'); ?>
|
||||
--FILE--
|
||||
<?php
|
||||
class Test {
|
||||
public function run() {
|
||||
$r = $this->my_parse_m();
|
||||
var_dump ($r);
|
||||
return $r;
|
||||
}
|
||||
|
||||
public function my_parse_m() {
|
||||
$test = true;
|
||||
if ($test === true) {
|
||||
$a = 'b';
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
// flush();
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
$t = new Test();
|
||||
var_dump ($t->run());
|
||||
--EXPECT--
|
||||
bool(true)
|
||||
bool(true)
|
||||
Reference in New Issue
Block a user