mirror of
https://github.com/php/php-src.git
synced 2026-04-22 15:38:49 +02:00
Removed deprecated AI_SET_PTR()s
This commit is contained in:
@@ -22,7 +22,10 @@ var_dump($y, $x);
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
Notice: Only variable references should be returned by reference in %sclosure_018.php on line 7
|
||||
int(4)
|
||||
|
||||
Notice: Only variable references should be returned by reference in %sclosure_018.php on line 7
|
||||
int(16)
|
||||
int(16)
|
||||
int(16)
|
||||
|
||||
@@ -20,7 +20,11 @@ test();
|
||||
|
||||
?>
|
||||
--EXPECTF--
|
||||
|
||||
Notice: Only variable references should be returned by reference in %sclosure_019.php on line 4
|
||||
int(9)
|
||||
|
||||
Notice: Only variable references should be returned by reference in %sclosure_019.php on line 4
|
||||
int(81)
|
||||
|
||||
Fatal error: Cannot pass parameter 1 by reference in %s on line %d
|
||||
|
||||
+3
-1
@@ -2717,7 +2717,9 @@ void zend_do_return(znode *expr, int do_end_vparse TSRMLS_DC) /* {{{ */
|
||||
if (expr) {
|
||||
SET_NODE(opline->op1, expr);
|
||||
|
||||
if (do_end_vparse && zend_is_function_or_method_call(expr)) {
|
||||
if (!do_end_vparse) {
|
||||
opline->extended_value = ZEND_RETURNS_VALUE;
|
||||
} else if (zend_is_function_or_method_call(expr)) {
|
||||
opline->extended_value = ZEND_RETURNS_FUNCTION;
|
||||
}
|
||||
} else {
|
||||
|
||||
@@ -840,6 +840,7 @@ int zend_add_literal(zend_op_array *op_array, const zval *zv TSRMLS_DC);
|
||||
|
||||
#define ZEND_RETURNS_FUNCTION 1<<0
|
||||
#define ZEND_RETURNS_NEW 1<<1
|
||||
#define ZEND_RETURNS_VALUE 1<<2
|
||||
|
||||
#define ZEND_FAST_RET_TO_CATCH 1
|
||||
#define ZEND_FAST_RET_TO_FINALLY 2
|
||||
|
||||
+26
-26
@@ -102,16 +102,14 @@ static zend_always_inline void zend_pzval_unlock_free_func(zval *z TSRMLS_DC)
|
||||
#define PZVAL_LOCK(z) Z_ADDREF_P((z))
|
||||
#define SELECTIVE_PZVAL_LOCK(pzv, opline) if (RETURN_VALUE_USED(opline)) { PZVAL_LOCK(pzv); }
|
||||
|
||||
#define EXTRACT_ZVAL_PTR(t) do { \
|
||||
temp_variable *__t = (t); \
|
||||
if (__t->var.ptr_ptr) { \
|
||||
__t->var.ptr = *__t->var.ptr_ptr; \
|
||||
__t->var.ptr_ptr = &__t->var.ptr; \
|
||||
if (!PZVAL_IS_REF(__t->var.ptr) && \
|
||||
Z_REFCOUNT_P(__t->var.ptr) > 2) { \
|
||||
SEPARATE_ZVAL(__t->var.ptr_ptr); \
|
||||
} \
|
||||
} \
|
||||
#define EXTRACT_ZVAL_PTR(t) do { \
|
||||
temp_variable *__t = (t); \
|
||||
__t->var.ptr = *__t->var.ptr_ptr; \
|
||||
__t->var.ptr_ptr = &__t->var.ptr; \
|
||||
if (!PZVAL_IS_REF(__t->var.ptr) && \
|
||||
Z_REFCOUNT_P(__t->var.ptr) > 2) { \
|
||||
SEPARATE_ZVAL(__t->var.ptr_ptr); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
#define AI_SET_PTR(t, val) do { \
|
||||
@@ -1215,12 +1213,12 @@ convert_to_array:
|
||||
zend_error(E_NOTICE, "Indirect modification of overloaded element of %s has no effect", ce->name);
|
||||
}
|
||||
}
|
||||
retval = &overloaded_result;
|
||||
AI_SET_PTR(result, overloaded_result);
|
||||
PZVAL_LOCK(overloaded_result);
|
||||
} else {
|
||||
retval = &EG(error_zval_ptr);
|
||||
result->var.ptr_ptr = &EG(error_zval_ptr);
|
||||
PZVAL_LOCK(EG(error_zval_ptr));
|
||||
}
|
||||
AI_SET_PTR(result, *retval);
|
||||
PZVAL_LOCK(*retval);
|
||||
if (dim_type == IS_TMP_VAR) {
|
||||
zval_ptr_dtor(&dim);
|
||||
}
|
||||
@@ -1237,8 +1235,8 @@ convert_to_array:
|
||||
default:
|
||||
if (type == BP_VAR_UNSET) {
|
||||
zend_error(E_WARNING, "Cannot unset offset in a non-array variable");
|
||||
AI_SET_PTR(result, &EG(uninitialized_zval));
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
result->var.ptr_ptr = &EG(uninitialized_zval_ptr);
|
||||
PZVAL_LOCK(EG(uninitialized_zval_ptr));
|
||||
} else {
|
||||
zend_error(E_WARNING, "Cannot use a scalar value as an array");
|
||||
result->var.ptr_ptr = &EG(error_zval_ptr);
|
||||
@@ -1256,12 +1254,12 @@ static void zend_fetch_dimension_address_read(temp_variable *result, zval *conta
|
||||
|
||||
case IS_ARRAY:
|
||||
retval = zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), dim, dim_type, type TSRMLS_CC);
|
||||
AI_SET_PTR(result, *retval);
|
||||
result->var.ptr = *retval;
|
||||
PZVAL_LOCK(*retval);
|
||||
return;
|
||||
|
||||
case IS_NULL:
|
||||
AI_SET_PTR(result, &EG(uninitialized_zval));
|
||||
result->var.ptr = &EG(uninitialized_zval);
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
return;
|
||||
|
||||
@@ -1314,7 +1312,7 @@ static void zend_fetch_dimension_address_read(temp_variable *result, zval *conta
|
||||
Z_STRVAL_P(ptr)[1] = 0;
|
||||
Z_STRLEN_P(ptr) = 1;
|
||||
}
|
||||
AI_SET_PTR(result, ptr);
|
||||
result->var.ptr = ptr;
|
||||
return;
|
||||
}
|
||||
break;
|
||||
@@ -1332,12 +1330,14 @@ static void zend_fetch_dimension_address_read(temp_variable *result, zval *conta
|
||||
}
|
||||
overloaded_result = Z_OBJ_HT_P(container)->read_dimension(container, dim, type TSRMLS_CC);
|
||||
|
||||
if (overloaded_result) {
|
||||
AI_SET_PTR(result, overloaded_result);
|
||||
PZVAL_LOCK(overloaded_result);
|
||||
} else if (result) {
|
||||
AI_SET_PTR(result, &EG(uninitialized_zval));
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
if (result) {
|
||||
if (overloaded_result) {
|
||||
result->var.ptr = overloaded_result;
|
||||
PZVAL_LOCK(overloaded_result);
|
||||
} else {
|
||||
result->var.ptr = &EG(uninitialized_zval);
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
}
|
||||
}
|
||||
if (dim_type == IS_TMP_VAR) {
|
||||
zval_ptr_dtor(&dim);
|
||||
@@ -1346,7 +1346,7 @@ static void zend_fetch_dimension_address_read(temp_variable *result, zval *conta
|
||||
return;
|
||||
|
||||
default:
|
||||
AI_SET_PTR(result, &EG(uninitialized_zval));
|
||||
result->var.ptr = &EG(uninitialized_zval);
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
return;
|
||||
}
|
||||
|
||||
+27
-31
@@ -352,7 +352,6 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMP|VAR
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
|
||||
EX_T(opline->result.var).var.ptr_ptr = NULL;
|
||||
}
|
||||
} else {
|
||||
/* here we are sure we are dealing with an object */
|
||||
@@ -372,7 +371,6 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMP|VAR
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(*zptr);
|
||||
EX_T(opline->result.var).var.ptr = *zptr;
|
||||
EX_T(opline->result.var).var.ptr_ptr = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -411,7 +409,6 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMP|VAR
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(z);
|
||||
EX_T(opline->result.var).var.ptr = z;
|
||||
EX_T(opline->result.var).var.ptr_ptr = NULL;
|
||||
}
|
||||
zval_ptr_dtor(&z);
|
||||
} else {
|
||||
@@ -419,7 +416,6 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_obj_helper, VAR|UNUSED|CV, CONST|TMP|VAR
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
|
||||
EX_T(opline->result.var).var.ptr_ptr = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -484,7 +480,7 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_helper, VAR|UNUSED|CV, CONST|TMP|VAR|UNU
|
||||
if (UNEXPECTED(*var_ptr == &EG(error_zval))) {
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
|
||||
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
|
||||
}
|
||||
FREE_OP2();
|
||||
FREE_OP1_VAR_PTR();
|
||||
@@ -512,7 +508,7 @@ ZEND_VM_HELPER_EX(zend_binary_assign_op_helper, VAR|UNUSED|CV, CONST|TMP|VAR|UNU
|
||||
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(*var_ptr);
|
||||
AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
|
||||
EX_T(opline->result.var).var.ptr = *var_ptr;
|
||||
}
|
||||
FREE_OP2();
|
||||
|
||||
@@ -805,7 +801,7 @@ ZEND_VM_HANDLER(34, ZEND_PRE_INC, VAR|CV, ANY)
|
||||
if (OP1_TYPE == IS_VAR && UNEXPECTED(*var_ptr == &EG(error_zval))) {
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
|
||||
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
|
||||
}
|
||||
FREE_OP1_VAR_PTR();
|
||||
CHECK_EXCEPTION();
|
||||
@@ -829,7 +825,7 @@ ZEND_VM_HANDLER(34, ZEND_PRE_INC, VAR|CV, ANY)
|
||||
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(*var_ptr);
|
||||
AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
|
||||
EX_T(opline->result.var).var.ptr = *var_ptr;
|
||||
}
|
||||
|
||||
FREE_OP1_VAR_PTR();
|
||||
@@ -852,7 +848,7 @@ ZEND_VM_HANDLER(35, ZEND_PRE_DEC, VAR|CV, ANY)
|
||||
if (OP1_TYPE == IS_VAR && UNEXPECTED(*var_ptr == &EG(error_zval))) {
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
|
||||
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
|
||||
}
|
||||
FREE_OP1_VAR_PTR();
|
||||
CHECK_EXCEPTION();
|
||||
@@ -876,7 +872,7 @@ ZEND_VM_HANDLER(35, ZEND_PRE_DEC, VAR|CV, ANY)
|
||||
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(*var_ptr);
|
||||
AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
|
||||
EX_T(opline->result.var).var.ptr = *var_ptr;
|
||||
}
|
||||
|
||||
FREE_OP1_VAR_PTR();
|
||||
@@ -1106,7 +1102,7 @@ ZEND_VM_HELPER_EX(zend_fetch_var_address_helper, CONST|TMP|VAR|CV, UNUSED|CONST|
|
||||
switch (type) {
|
||||
case BP_VAR_R:
|
||||
case BP_VAR_IS:
|
||||
AI_SET_PTR(&EX_T(opline->result.var), *retval);
|
||||
EX_T(opline->result.var).var.ptr = *retval;
|
||||
break;
|
||||
case BP_VAR_UNSET: {
|
||||
zend_free_op free_res;
|
||||
@@ -1339,7 +1335,7 @@ ZEND_VM_HELPER(zend_fetch_property_address_read_helper, VAR|UNUSED|CV, CONST|TMP
|
||||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
|
||||
zend_error(E_NOTICE, "Trying to get property of non-object");
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
|
||||
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
|
||||
FREE_OP2();
|
||||
} else {
|
||||
zval *retval;
|
||||
@@ -1352,7 +1348,7 @@ ZEND_VM_HELPER(zend_fetch_property_address_read_helper, VAR|UNUSED|CV, CONST|TMP
|
||||
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_R, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
|
||||
PZVAL_LOCK(retval);
|
||||
AI_SET_PTR(&EX_T(opline->result.var), retval);
|
||||
EX_T(opline->result.var).var.ptr = retval;
|
||||
|
||||
if (IS_OP2_TMP_FREE()) {
|
||||
zval_ptr_dtor(&offset);
|
||||
@@ -1461,7 +1457,7 @@ ZEND_VM_HANDLER(91, ZEND_FETCH_OBJ_IS, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
|
||||
if (UNEXPECTED(Z_TYPE_P(container) != IS_OBJECT) ||
|
||||
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
|
||||
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
|
||||
FREE_OP2();
|
||||
} else {
|
||||
zval *retval;
|
||||
@@ -1474,7 +1470,7 @@ ZEND_VM_HANDLER(91, ZEND_FETCH_OBJ_IS, VAR|UNUSED|CV, CONST|TMP|VAR|CV)
|
||||
retval = Z_OBJ_HT_P(container)->read_property(container, offset, BP_VAR_IS, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
|
||||
|
||||
PZVAL_LOCK(retval);
|
||||
AI_SET_PTR(&EX_T(opline->result.var), retval);
|
||||
EX_T(opline->result.var).var.ptr = retval;
|
||||
|
||||
if (IS_OP2_TMP_FREE()) {
|
||||
zval_ptr_dtor(&offset);
|
||||
@@ -1579,13 +1575,13 @@ ZEND_VM_HANDLER(98, ZEND_FETCH_DIM_TMP_VAR, CONST|TMP, CONST)
|
||||
|
||||
if (UNEXPECTED(Z_TYPE_P(container) != IS_ARRAY)) {
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
|
||||
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
|
||||
} else {
|
||||
zend_free_op free_op2;
|
||||
zval *value = *zend_fetch_dimension_address_inner(Z_ARRVAL_P(container), GET_OP2_ZVAL_PTR(BP_VAR_R), OP2_TYPE, BP_VAR_R TSRMLS_CC);
|
||||
|
||||
PZVAL_LOCK(value);
|
||||
AI_SET_PTR(&EX_T(opline->result.var), value);
|
||||
EX_T(opline->result.var).var.ptr = value;
|
||||
FREE_OP2();
|
||||
}
|
||||
CHECK_EXCEPTION();
|
||||
@@ -1666,11 +1662,11 @@ ZEND_VM_HANDLER(147, ZEND_ASSIGN_DIM, VAR|CV, CONST|TMP|VAR|UNUSED|CV)
|
||||
ALLOC_ZVAL(retval);
|
||||
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T((opline+1)->op2.var).str_offset.str)+EX_T((opline+1)->op2.var).str_offset.offset, 1, 1);
|
||||
INIT_PZVAL(retval);
|
||||
AI_SET_PTR(&EX_T(opline->result.var), retval);
|
||||
EX_T(opline->result.var).var.ptr = retval;
|
||||
}
|
||||
} else if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
|
||||
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
|
||||
}
|
||||
} else if (UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
|
||||
if (IS_TMP_FREE(free_op_data1)) {
|
||||
@@ -1678,7 +1674,7 @@ ZEND_VM_HANDLER(147, ZEND_ASSIGN_DIM, VAR|CV, CONST|TMP|VAR|UNUSED|CV)
|
||||
}
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
|
||||
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
|
||||
}
|
||||
} else {
|
||||
if ((opline+1)->op1_type == IS_TMP_VAR) {
|
||||
@@ -1690,7 +1686,7 @@ ZEND_VM_HANDLER(147, ZEND_ASSIGN_DIM, VAR|CV, CONST|TMP|VAR|UNUSED|CV)
|
||||
}
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(value);
|
||||
AI_SET_PTR(&EX_T(opline->result.var), value);
|
||||
EX_T(opline->result.var).var.ptr = value;
|
||||
}
|
||||
}
|
||||
FREE_OP_VAR_PTR(free_op_data2);
|
||||
@@ -1722,11 +1718,11 @@ ZEND_VM_HANDLER(38, ZEND_ASSIGN, VAR|CV, CONST|TMP|VAR|CV)
|
||||
ALLOC_ZVAL(retval);
|
||||
ZVAL_STRINGL(retval, Z_STRVAL_P(EX_T(opline->op1.var).str_offset.str)+EX_T(opline->op1.var).str_offset.offset, 1, 1);
|
||||
INIT_PZVAL(retval);
|
||||
AI_SET_PTR(&EX_T(opline->result.var), retval);
|
||||
EX_T(opline->result.var).var.ptr = retval;
|
||||
}
|
||||
} else if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
|
||||
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
|
||||
}
|
||||
} else if (OP1_TYPE == IS_VAR && UNEXPECTED(*variable_ptr_ptr == &EG(error_zval))) {
|
||||
if (IS_OP2_TMP_FREE()) {
|
||||
@@ -1734,7 +1730,7 @@ ZEND_VM_HANDLER(38, ZEND_ASSIGN, VAR|CV, CONST|TMP|VAR|CV)
|
||||
}
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(&EG(uninitialized_zval));
|
||||
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
|
||||
EX_T(opline->result.var).var.ptr = &EG(uninitialized_zval);
|
||||
}
|
||||
} else {
|
||||
if (OP2_TYPE == IS_TMP_VAR) {
|
||||
@@ -1746,7 +1742,7 @@ ZEND_VM_HANDLER(38, ZEND_ASSIGN, VAR|CV, CONST|TMP|VAR|CV)
|
||||
}
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(value);
|
||||
AI_SET_PTR(&EX_T(opline->result.var), value);
|
||||
EX_T(opline->result.var).var.ptr = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1803,7 +1799,7 @@ ZEND_VM_HANDLER(39, ZEND_ASSIGN_REF, VAR|CV, VAR|CV)
|
||||
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
PZVAL_LOCK(*variable_ptr_ptr);
|
||||
AI_SET_PTR(&EX_T(opline->result.var), *variable_ptr_ptr);
|
||||
EX_T(opline->result.var).var.ptr = *variable_ptr_ptr;
|
||||
}
|
||||
|
||||
FREE_OP1_VAR_PTR();
|
||||
@@ -2873,7 +2869,8 @@ ZEND_VM_HANDLER(111, ZEND_RETURN_BY_REF, CONST|TMP|VAR|CV, ANY)
|
||||
SAVE_OPLINE();
|
||||
|
||||
do {
|
||||
if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_TMP_VAR) {
|
||||
if (OP1_TYPE == IS_CONST || OP1_TYPE == IS_TMP_VAR ||
|
||||
(OP1_TYPE == IS_VAR && opline->extended_value == ZEND_RETURNS_VALUE)) {
|
||||
/* Not supposed to happen, but we'll allow it */
|
||||
zend_error(E_NOTICE, "Only variable references should be returned by reference");
|
||||
|
||||
@@ -3495,7 +3492,7 @@ ZEND_VM_HANDLER(110, ZEND_CLONE, CONST|TMP|VAR|UNUSED|CV, ANY)
|
||||
if (!RETURN_VALUE_USED(opline) || UNEXPECTED(EG(exception) != NULL)) {
|
||||
zval_ptr_dtor(&retval);
|
||||
} else {
|
||||
AI_SET_PTR(&EX_T(opline->result.var), retval);
|
||||
EX_T(opline->result.var).var.ptr = retval;
|
||||
}
|
||||
}
|
||||
FREE_OP1_IF_VAR();
|
||||
@@ -3845,7 +3842,6 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMP|VAR|CV, ANY)
|
||||
EX(original_return_value) = EG(return_value_ptr_ptr);
|
||||
EG(active_op_array) = new_op_array;
|
||||
if (RETURN_VALUE_USED(opline)) {
|
||||
EX_T(opline->result.var).var.ptr = NULL;
|
||||
EX_T(opline->result.var).var.ptr_ptr = &EX_T(opline->result.var).var.ptr;
|
||||
EG(return_value_ptr_ptr) = EX_T(opline->result.var).var.ptr_ptr;
|
||||
} else {
|
||||
@@ -3883,7 +3879,7 @@ ZEND_VM_HANDLER(73, ZEND_INCLUDE_OR_EVAL, CONST|TMP|VAR|CV, ANY)
|
||||
ALLOC_ZVAL(retval);
|
||||
ZVAL_BOOL(retval, failure_retval);
|
||||
INIT_PZVAL(retval);
|
||||
AI_SET_PTR(&EX_T(opline->result.var), retval);
|
||||
EX_T(opline->result.var).var.ptr = retval;
|
||||
}
|
||||
ZEND_VM_NEXT_OPCODE();
|
||||
}
|
||||
@@ -4388,7 +4384,7 @@ ZEND_VM_HANDLER(78, ZEND_FE_FETCH, VAR, ANY)
|
||||
Z_ADDREF_PP(value);
|
||||
} else {
|
||||
PZVAL_LOCK(*value);
|
||||
AI_SET_PTR(&EX_T(opline->result.var), *value);
|
||||
EX_T(opline->result.var).var.ptr = *value;
|
||||
}
|
||||
|
||||
CHECK_EXCEPTION();
|
||||
|
||||
+196
-256
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user