@@ -834,6 +834,7 @@ ZEND_VM_C_LABEL(assign_op_object):
834
834
ZVAL_NULL (EX_VAR (opline -> result .var ));
835
835
}
836
836
} else {
837
+ zval * orig_zptr = zptr ;
837
838
zend_reference * ref ;
838
839
zend_bool is_typed_ref = 0 ;
839
840
@@ -846,9 +847,7 @@ ZEND_VM_C_LABEL(assign_op_object):
846
847
if (OP2_TYPE == IS_CONST ) {
847
848
prop_info = (zend_property_info * )CACHED_PTR_EX (cache_slot + 2 );
848
849
} else {
849
- zend_string * tmp_str , * prop_name = zval_get_tmp_string (property , & tmp_str );
850
- prop_info = zend_object_fetch_property_type_info (Z_OBJCE_P (object ), prop_name , NULL );
851
- zend_tmp_string_release (tmp_str );
850
+ prop_info = zend_object_fetch_property_type_info (Z_OBJ_P (object ), orig_zptr );
852
851
}
853
852
if (UNEXPECTED (prop_info || is_typed_ref )) {
854
853
/* special case for typed properties */
@@ -1234,9 +1233,7 @@ ZEND_VM_C_LABEL(pre_incdec_object):
1234
1233
if (OP2_TYPE == IS_CONST ) {
1235
1234
prop_info = (zend_property_info * ) CACHED_PTR_EX (cache_slot + 2 );
1236
1235
} else {
1237
- zend_string * tmp_str , * prop_name = zval_get_tmp_string (property , & tmp_str );
1238
- prop_info = zend_object_fetch_property_type_info (Z_OBJCE_P (object ), prop_name , NULL );
1239
- zend_tmp_string_release (tmp_str );
1236
+ prop_info = zend_object_fetch_property_type_info (Z_OBJ_P (object ), zptr );
1240
1237
}
1241
1238
zend_pre_incdec_property_zval (zptr , prop_info , inc OPLINE_CC EXECUTE_DATA_CC );
1242
1239
}
@@ -1301,9 +1298,7 @@ ZEND_VM_C_LABEL(post_incdec_object):
1301
1298
if (OP2_TYPE == IS_CONST ) {
1302
1299
prop_info = (zend_property_info * )CACHED_PTR_EX (cache_slot + 2 );
1303
1300
} else {
1304
- zend_string * tmp_str , * prop_name = zval_get_tmp_string (property , & tmp_str );
1305
- prop_info = zend_object_fetch_property_type_info (Z_OBJCE_P (object ), prop_name , NULL );
1306
- zend_tmp_string_release (tmp_str );
1301
+ prop_info = zend_object_fetch_property_type_info (Z_OBJ_P (object ), zptr );
1307
1302
}
1308
1303
1309
1304
zend_post_incdec_property_zval (zptr , prop_info , inc OPLINE_CC EXECUTE_DATA_CC );
@@ -2747,9 +2742,7 @@ ZEND_VM_HANDLER(200, ZEND_ASSIGN_OBJ_REF, VAR|UNUSED|THIS|CV, CONST|TMPVAR|CV, C
2747
2742
if (OP2_TYPE == IS_CONST ) {
2748
2743
prop_info = (zend_property_info * ) CACHED_PTR_EX (cache_addr + 2 );
2749
2744
} else {
2750
- zend_string * tmp_str , * prop_name = zval_get_tmp_string (property , & tmp_str );
2751
- prop_info = zend_object_fetch_property_type_info (Z_OBJCE_P (container ), prop_name , NULL );
2752
- zend_tmp_string_release (tmp_str );
2745
+ prop_info = zend_object_fetch_property_type_info (Z_OBJ_P (container ), variable_ptr );
2753
2746
}
2754
2747
2755
2748
if (UNEXPECTED (prop_info )) {
0 commit comments