Merge branch 'PHP-7.4'

This commit is contained in:
Nikita Popov 2019-10-10 15:17:19 +02:00
commit 93b39f68f5
5 changed files with 10 additions and 19 deletions

View File

@ -58,10 +58,5 @@ int(24)
Fatal error: Uncaught Error: Cannot access private property B::$x in %s:%d
Stack trace:
#0 %s(%d): Closure->{closure}()
#1 {main}
Next Error: Cannot access private property B::$x in %s:%d
Stack trace:
#0 %s(%d): Closure->{closure}()
#1 {main}
thrown in %s on line %d

View File

@ -58,10 +58,5 @@ int(24)
Fatal error: Uncaught Error: Cannot access private property B::$x in %s:%d
Stack trace:
#0 %s(%d): Closure->{closure}()
#1 {main}
Next Error: Cannot access private property B::$x in %s:%d
Stack trace:
#0 %s(%d): Closure->{closure}()
#1 {main}
thrown in %s on line %d

View File

@ -2584,7 +2584,7 @@ static zend_never_inline zend_bool zend_handle_fetch_obj_flags(
}
if (!check_type_array_assignable(prop_info->type)) {
zend_throw_auto_init_in_prop_error(prop_info, "array");
if (result) ZVAL_UNDEF(result);
if (result) ZVAL_ERROR(result);
return 0;
}
}
@ -2600,7 +2600,7 @@ static zend_never_inline zend_bool zend_handle_fetch_obj_flags(
if (Z_TYPE_P(ptr) == IS_UNDEF) {
if (!ZEND_TYPE_ALLOW_NULL(prop_info->type)) {
zend_throw_access_uninit_prop_by_ref_error(prop_info);
if (result) ZVAL_UNDEF(result);
if (result) ZVAL_ERROR(result);
return 0;
}
ZVAL_NULL(ptr);
@ -2641,7 +2641,7 @@ static zend_always_inline void zend_fetch_property_address(zval *result, zval *c
}
zend_throw_non_object_error(container, prop_ptr OPLINE_CC EXECUTE_DATA_CC);
ZVAL_UNDEF(result);
ZVAL_ERROR(result);
return;
} while (0);
}
@ -2692,6 +2692,9 @@ static zend_always_inline void zend_fetch_property_address(zval *result, zval *c
}
return;
}
} else if (UNEXPECTED(Z_ISERROR_P(ptr))) {
ZVAL_ERROR(result);
return;
}
ZVAL_INDIRECT(result, ptr);
@ -2728,7 +2731,7 @@ static zend_always_inline void zend_assign_to_property_reference(zval *container
variable_ptr = Z_INDIRECT_P(variable_ptr);
}
if (UNEXPECTED(EG(exception))) {
if (UNEXPECTED(Z_ISERROR_P(variable_ptr))) {
variable_ptr = &EG(uninitialized_zval);
} else if (UNEXPECTED(Z_TYPE(variable) != IS_INDIRECT)) {
zend_throw_error(NULL, "Cannot assign by reference to overloaded object");

View File

@ -1040,6 +1040,8 @@ ZEND_API zval *zend_std_get_property_ptr_ptr(zend_object *zobj, zend_string *nam
zend_error(E_WARNING, "Undefined property: %s::$%s", ZSTR_VAL(zobj->ce->name), ZSTR_VAL(name));
}
}
} else if (zobj->ce->__get == NULL) {
retval = &EG(error_zval);
}
return retval;

View File

@ -17,11 +17,7 @@ try {
==Done==
--EXPECTF--
--> Access non-visible static prop like instance prop:
Error: Cannot access protected property C::$y in %s:9
Stack trace:
#0 {main}
Next Error: Cannot access protected property C::$y in %s:9
Error: Cannot access protected property C::$y in %s:%d
Stack trace:
#0 {main}
==Done==