From 84cd04fca0398cfd77ecb0ef7f2e816d4496192b Mon Sep 17 00:00:00 2001 From: Xinchen Hui Date: Mon, 10 Nov 2014 23:35:45 +0800 Subject: [PATCH] A better fix(do the convertion in compile time) --- Zend/tests/class_properties_const.phpt | 25 ++++++++++++++++ Zend/zend_compile.c | 3 +- Zend/zend_vm_def.h | 2 -- Zend/zend_vm_execute.h | 40 -------------------------- 4 files changed, 27 insertions(+), 43 deletions(-) create mode 100644 Zend/tests/class_properties_const.phpt diff --git a/Zend/tests/class_properties_const.phpt b/Zend/tests/class_properties_const.phpt new file mode 100644 index 0000000000..ac871b5c2b --- /dev/null +++ b/Zend/tests/class_properties_const.phpt @@ -0,0 +1,25 @@ +--TEST-- +Const class properties(runtime cache) +--FILE-- +{array()}); +var_dump($a->{1}); +var_dump($a->{function(){}}); +?> +--EXPECTF-- +Notice: Array to string conversion in %sclass_properties_const.php on line %d +runtime + +Notice: Undefined property: A::$Array in %sclass_properties_const.php on line %d +NULL + +Notice: Undefined property: A::$1 in %sclass_properties_const.php on line %d +NULL + +Catchable fatal error: Object of class Closure could not be converted to string in %sclass_properties_const.php on line %d diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index babf39ff40..d66ed5db35 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -2109,7 +2109,8 @@ static zend_op *zend_delayed_compile_prop(znode *result, zend_ast *ast, uint32_t zend_compile_expr(&prop_node, prop_ast TSRMLS_CC); opline = zend_delayed_emit_op(result, ZEND_FETCH_OBJ_R, &obj_node, &prop_node TSRMLS_CC); - if (opline->op2_type == IS_CONST && Z_TYPE(CONSTANT(opline->op2.constant)) == IS_STRING) { + if (opline->op2_type == IS_CONST) { + convert_to_string(&CONSTANT(opline->op2.constant)); zend_alloc_polymorphic_cache_slot(opline->op2.constant TSRMLS_CC); } diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 81d5cfc1e6..9e8e628362 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -1326,7 +1326,6 @@ ZEND_VM_HANDLER(82, ZEND_FETCH_OBJ_R, CONST|TMP|VAR|UNUSED|CV, CONST|TMP|VAR|CV) /* here we are sure we are dealing with an object */ do { if (OP2_TYPE == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -1430,7 +1429,6 @@ ZEND_VM_HANDLER(91, ZEND_FETCH_OBJ_IS, CONST|TMP|VAR|UNUSED|CV, CONST|TMP|VAR|CV /* here we are sure we are dealing with an object */ do { if (OP2_TYPE == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 07507f3b81..8f4de2f8f6 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -3986,7 +3986,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE_ /* here we are sure we are dealing with an object */ do { if (IS_CONST == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -4040,7 +4039,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CONST_CONST_HANDLER(ZEND_OPCODE /* here we are sure we are dealing with an object */ do { if (IS_CONST == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -5380,7 +5378,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_HA /* here we are sure we are dealing with an object */ do { if (IS_TMP_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -5435,7 +5432,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CONST_TMP_HANDLER(ZEND_OPCODE_H /* here we are sure we are dealing with an object */ do { if (IS_TMP_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -6619,7 +6615,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HA /* here we are sure we are dealing with an object */ do { if (IS_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -6674,7 +6669,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_H /* here we are sure we are dealing with an object */ do { if (IS_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -8583,7 +8577,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HAN /* here we are sure we are dealing with an object */ do { if (IS_CV == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -8637,7 +8630,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CONST_CV_HANDLER(ZEND_OPCODE_HA /* here we are sure we are dealing with an object */ do { if (IS_CV == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -10956,7 +10948,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_HA /* here we are sure we are dealing with an object */ do { if (IS_CONST == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -11010,7 +11001,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMP_CONST_HANDLER(ZEND_OPCODE_H /* here we are sure we are dealing with an object */ do { if (IS_CONST == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -12226,7 +12216,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HAND /* here we are sure we are dealing with an object */ do { if (IS_TMP_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -12281,7 +12270,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMP_TMP_HANDLER(ZEND_OPCODE_HAN /* here we are sure we are dealing with an object */ do { if (IS_TMP_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -13438,7 +13426,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HAND /* here we are sure we are dealing with an object */ do { if (IS_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -13493,7 +13480,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HAN /* here we are sure we are dealing with an object */ do { if (IS_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -15267,7 +15253,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HANDL /* here we are sure we are dealing with an object */ do { if (IS_CV == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -15321,7 +15306,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_TMP_CV_HANDLER(ZEND_OPCODE_HAND /* here we are sure we are dealing with an object */ do { if (IS_CV == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -18762,7 +18746,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA /* here we are sure we are dealing with an object */ do { if (IS_CONST == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -18865,7 +18848,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H /* here we are sure we are dealing with an object */ do { if (IS_CONST == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -21100,7 +21082,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND /* here we are sure we are dealing with an object */ do { if (IS_TMP_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -21204,7 +21185,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN /* here we are sure we are dealing with an object */ do { if (IS_TMP_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -23276,7 +23256,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND /* here we are sure we are dealing with an object */ do { if (IS_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -23380,7 +23359,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN /* here we are sure we are dealing with an object */ do { if (IS_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -26712,7 +26690,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL /* here we are sure we are dealing with an object */ do { if (IS_CV == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -26815,7 +26792,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND /* here we are sure we are dealing with an object */ do { if (IS_CV == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -28462,7 +28438,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCODE /* here we are sure we are dealing with an object */ do { if (IS_CONST == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -28565,7 +28540,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CONST_HANDLER(ZEND_OPCOD /* here we are sure we are dealing with an object */ do { if (IS_CONST == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -29870,7 +29844,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_H /* here we are sure we are dealing with an object */ do { if (IS_TMP_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -29974,7 +29947,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_TMP_HANDLER(ZEND_OPCODE_ /* here we are sure we are dealing with an object */ do { if (IS_TMP_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -31191,7 +31163,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_H /* here we are sure we are dealing with an object */ do { if (IS_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -31295,7 +31266,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_ /* here we are sure we are dealing with an object */ do { if (IS_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -32999,7 +32969,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_HA /* here we are sure we are dealing with an object */ do { if (IS_CV == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -33102,7 +33071,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_CV_HANDLER(ZEND_OPCODE_H /* here we are sure we are dealing with an object */ do { if (IS_CV == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -36248,7 +36216,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HAN /* here we are sure we are dealing with an object */ do { if (IS_CONST == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -36351,7 +36318,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CONST_HANDLER(ZEND_OPCODE_HA /* here we are sure we are dealing with an object */ do { if (IS_CONST == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -38416,7 +38382,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HANDL /* here we are sure we are dealing with an object */ do { if (IS_TMP_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -38520,7 +38485,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_TMP_HANDLER(ZEND_OPCODE_HAND /* here we are sure we are dealing with an object */ do { if (IS_TMP_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -40464,7 +40428,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL /* here we are sure we are dealing with an object */ do { if (IS_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -40568,7 +40531,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND /* here we are sure we are dealing with an object */ do { if (IS_VAR == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -43625,7 +43587,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_R_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDLE /* here we are sure we are dealing with an object */ do { if (IS_CV == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); @@ -43728,7 +43689,6 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_CV_HANDLER(ZEND_OPCODE_HANDL /* here we are sure we are dealing with an object */ do { if (IS_CV == IS_CONST && - EXPECTED(Z_TYPE_P(offset) == IS_STRING) && EXPECTED(Z_OBJCE_P(container) == CACHED_PTR(Z_CACHE_SLOT_P(offset)))) { zend_property_info *prop_info = CACHED_PTR(Z_CACHE_SLOT_P(offset) + 1); zend_object *zobj = Z_OBJ_P(container); -- 2.50.1