mirror of
https://github.com/php/php-src.git
synced 2024-09-21 18:07:23 +00:00
Merge branch 'PHP-8.0'
* PHP-8.0: Drop incorrect cache_slot optimization for typed properties
This commit is contained in:
commit
90e6a74016
@ -0,0 +1,30 @@
|
||||
--TEST--
|
||||
Demonstrate that cache_slot optimization is illegal due to cache_slot merging
|
||||
--FILE--
|
||||
<?php
|
||||
|
||||
class Test {
|
||||
public int $prop;
|
||||
|
||||
public function method() {
|
||||
// Opcache merges cache slots for both assignments.
|
||||
$this->prop = 1;
|
||||
try {
|
||||
$this->prop = "foobar";
|
||||
} catch (TypeError $e) {
|
||||
echo $e->getMessage(), "\n";
|
||||
}
|
||||
var_dump($this->prop);
|
||||
}
|
||||
}
|
||||
|
||||
$test = new Test;
|
||||
$test->method();
|
||||
$test->method();
|
||||
|
||||
?>
|
||||
--EXPECT--
|
||||
Cannot assign string to property Test::$prop of type int
|
||||
int(1)
|
||||
Cannot assign string to property Test::$prop of type int
|
||||
int(1)
|
@ -2379,18 +2379,7 @@ ZEND_VM_C_LABEL(assign_object):
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (OP_DATA_TYPE == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (OP_DATA_TYPE == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
ZEND_VM_C_GOTO(free_and_exit_assign_obj);
|
||||
} else {
|
||||
ZEND_VM_C_LABEL(fast_assign_obj):
|
||||
|
@ -22784,18 +22784,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CONST == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CONST == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -22926,18 +22915,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_TMP_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_TMP_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -23068,18 +23046,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -23210,18 +23177,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CV == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CV == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -25365,18 +25321,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CONST == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CONST == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -25507,18 +25452,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_TMP_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_TMP_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -25649,18 +25583,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -25791,18 +25714,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CV == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CV == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -29294,18 +29206,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CONST == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CONST == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -29436,18 +29337,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_TMP_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_TMP_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -29578,18 +29468,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -29720,18 +29599,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CV == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CV == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -31720,18 +31588,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CONST == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CONST == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -31862,18 +31719,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_TMP_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_TMP_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -32004,18 +31850,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -32146,18 +31981,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CV == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CV == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -33617,18 +33441,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CONST == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CONST == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -33759,18 +33572,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_TMP_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_TMP_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -33901,18 +33703,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -34043,18 +33834,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CV == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CV == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -36131,18 +35911,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CONST == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CONST == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -36273,18 +36042,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_TMP_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_TMP_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -36415,18 +36173,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -36557,18 +36304,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CV == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CV == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -40313,18 +40049,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CONST == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CONST == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -40455,18 +40180,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_TMP_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_TMP_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -40597,18 +40311,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -40739,18 +40442,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CV == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CV == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -43964,18 +43656,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CONST == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CONST == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -44106,18 +43787,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_TMP_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_TMP_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -44248,18 +43918,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -44390,18 +44049,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CV == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CV == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -48996,18 +48644,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CONST == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CONST == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -49138,18 +48775,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_TMP_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_TMP_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -49280,18 +48906,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_VAR == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_VAR == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
@ -49422,18 +49037,7 @@ assign_object:
|
||||
zend_property_info *prop_info = (zend_property_info*) CACHED_PTR_EX(cache_slot + 2);
|
||||
|
||||
if (UNEXPECTED(prop_info != NULL)) {
|
||||
zend_uchar orig_type = IS_UNDEF;
|
||||
|
||||
if (IS_CV == IS_CONST) {
|
||||
orig_type = Z_TYPE_P(value);
|
||||
}
|
||||
|
||||
value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
|
||||
|
||||
/* will remain valid, thus no need to check prop_info in future here */
|
||||
if (IS_CV == IS_CONST && Z_TYPE_P(value) == orig_type) {
|
||||
CACHE_PTR_EX(cache_slot + 2, NULL);
|
||||
}
|
||||
goto free_and_exit_assign_obj;
|
||||
} else {
|
||||
fast_assign_obj:
|
||||
|
Loading…
Reference in New Issue
Block a user