Merge branch 'PHP-7.0' of https://github.com/php/php-src into PHP-7.0

This commit is contained in:
Bob Weinand 2016-04-18 12:13:59 +02:00
commit b08bde185d
5 changed files with 51 additions and 9 deletions

View File

@ -0,0 +1,36 @@
--TEST--
Array must be separated if unpacking by reference
--FILE--
<?php
function inc(&... $args) {
foreach ($args as &$arg) {
$arg++;
}
}
$arr = [1, 2];
$arr[] = 3;
$arr2 = $arr;
inc(...$arr);
var_dump($arr);
var_dump($arr2);
?>
--EXPECT--
array(3) {
[0]=>
int(2)
[1]=>
int(3)
[2]=>
int(4)
}
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}

View File

@ -4422,7 +4422,7 @@ ZEND_VM_C_LABEL(send_again):
zend_vm_stack_extend_call_frame(&EX(call), arg_num - 1, zend_hash_num_elements(ht));
if (OP1_TYPE != IS_CONST && OP1_TYPE != IS_TMP_VAR && Z_IMMUTABLE_P(args)) {
if (OP1_TYPE != IS_CONST && OP1_TYPE != IS_TMP_VAR && Z_REFCOUNT_P(args) > 1) {
uint32_t i;
int separate = 0;
@ -4434,7 +4434,7 @@ ZEND_VM_C_LABEL(send_again):
}
}
if (separate) {
zval_copy_ctor(args);
SEPARATE_ARRAY(args);
ht = Z_ARRVAL_P(args);
}
}
@ -4448,7 +4448,7 @@ ZEND_VM_C_LABEL(send_again):
top = ZEND_CALL_ARG(EX(call), arg_num);
if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) {
if (!Z_IMMUTABLE_P(args)) {
if (Z_REFCOUNT_P(args) == 1) {
ZVAL_MAKE_REF(arg);
Z_ADDREF_P(arg);
ZVAL_REF(top, Z_REF_P(arg));

View File

@ -954,7 +954,7 @@ send_again:
zend_vm_stack_extend_call_frame(&EX(call), arg_num - 1, zend_hash_num_elements(ht));
if (opline->op1_type != IS_CONST && opline->op1_type != IS_TMP_VAR && Z_IMMUTABLE_P(args)) {
if (opline->op1_type != IS_CONST && opline->op1_type != IS_TMP_VAR && Z_REFCOUNT_P(args) > 1) {
uint32_t i;
int separate = 0;
@ -966,7 +966,7 @@ send_again:
}
}
if (separate) {
zval_copy_ctor(args);
SEPARATE_ARRAY(args);
ht = Z_ARRVAL_P(args);
}
}
@ -980,7 +980,7 @@ send_again:
top = ZEND_CALL_ARG(EX(call), arg_num);
if (ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) {
if (!Z_IMMUTABLE_P(args)) {
if (Z_REFCOUNT_P(args) == 1) {
ZVAL_MAKE_REF(arg);
Z_ADDREF_P(arg);
ZVAL_REF(top, Z_REF_P(arg));

View File

@ -57,11 +57,11 @@ function get_attr($conn)
?>
--EXPECT--
**Test 1.1 - Default values for the attribute **************
The value of DRIVER_NAME is PHP OCI8 : 2.1.0
The value of DRIVER_NAME is PHP OCI8 : 2.1.1
***Test 1.2 - Get the values from different connections **************
Testing with oci_pconnect()
The value of DRIVER_NAME is PHP OCI8 : 2.1.0
The value of DRIVER_NAME is PHP OCI8 : 2.1.1
Testing with oci_new_connect()
The value of DRIVER_NAME is PHP OCI8 : 2.1.0
The value of DRIVER_NAME is PHP OCI8 : 2.1.1
Done

View File

@ -2,6 +2,12 @@
FPM: Test status page
--SKIPIF--
<?php include "skipif.inc"; ?>
--XFAIL--
randomly intermittently failing all the time in CI, with diff:
017+ active processes: 0
018+ total processes: 1
017- active processes: 1
018- total processes: 2
--FILE--
<?php