mirror of
https://github.com/php/php-src.git
synced 2026-04-29 11:13:36 +02:00
Merge branch 'master' of git.php.net:php-src
This commit is contained in:
@@ -3,6 +3,7 @@ PHP NEWS
|
||||
25 Jun 2015, PHP 7.0.0 Alpha 2
|
||||
|
||||
- Core:
|
||||
. Fixed bug #69872 (uninitialised value in strtr with array). (Laruence)
|
||||
. Fixed bug #69868 (Invalid read of size 1 in zend_compile_short_circuiting).
|
||||
(Laruence)
|
||||
. Fixed bug #69823 (PHP 7.0.0alpha1 segmentation fault when exactly 33
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
--TEST--
|
||||
Bug #69871 (Short-circuiting failure with smart_branch)
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
$a = true;
|
||||
if (isset($a) && 0) {
|
||||
var_dump(true);
|
||||
} else {
|
||||
var_dump(false);
|
||||
}
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
bool(false)
|
||||
+14
-2
@@ -2428,9 +2428,21 @@ static zend_always_inline zend_generator *zend_get_running_generator(zend_execut
|
||||
# define ZEND_VM_SMART_BRANCH(_result, _check) do { \
|
||||
int __result; \
|
||||
if (EXPECTED((opline+1)->opcode == ZEND_JMPZ)) { \
|
||||
__result = (_result); \
|
||||
if (UNEXPECTED((opline+1)->op1_type == IS_CONST)) { \
|
||||
zend_uchar __type = Z_TYPE_P(EX_CONSTANT((opline+1)->op1)); \
|
||||
ZEND_ASSERT(__type == IS_TRUE || __type == IS_FALSE); /* assume boolean */ \
|
||||
__result = __type == IS_TRUE; \
|
||||
} else { \
|
||||
__result = (_result); \
|
||||
} \
|
||||
} else if (EXPECTED((opline+1)->opcode == ZEND_JMPNZ)) { \
|
||||
__result = !(_result); \
|
||||
if (UNEXPECTED((opline+1)->op1_type == IS_CONST)) { \
|
||||
zend_uchar __type = Z_TYPE_P(EX_CONSTANT((opline+1)->op1)); \
|
||||
ZEND_ASSERT(__type == IS_TRUE || __type == IS_FALSE); /* assume boolean */ \
|
||||
__result = __type != IS_TRUE; \
|
||||
} else { \
|
||||
__result = !(_result); \
|
||||
} \
|
||||
} else { \
|
||||
break; \
|
||||
} \
|
||||
|
||||
Reference in New Issue
Block a user