@@ -2944,7 +2944,7 @@ static void ZEND_FASTCALL zend_jit_assign_obj_op_helper(zend_object *zobj, zend_
29442944//??? } else {
29452945//??? prop_info = zend_object_fetch_property_type_info(Z_OBJ_P(object), orig_zptr);
29462946//??? }
2947- if (prop_info ) {
2947+ if (prop_info && ZEND_TYPE_IS_SET ( prop_info -> type ) ) {
29482948 /* special case for typed properties */
29492949 zend_jit_assign_op_to_typed_prop (zptr , prop_info , value , binary_op );
29502950 } else {
@@ -3140,6 +3140,9 @@ static void ZEND_FASTCALL zend_jit_pre_inc_obj_helper(zend_object *zobj, zend_st
31403140 }
31413141 } else {
31423142 zend_property_info * prop_info = (zend_property_info * ) CACHED_PTR_EX (cache_slot + 2 );
3143+ if (prop_info && !ZEND_TYPE_IS_SET (prop_info -> type )) {
3144+ prop_info = NULL ;
3145+ }
31433146
31443147 if (EXPECTED (Z_TYPE_P (prop ) == IS_LONG )) {
31453148 fast_long_increment_function (prop );
@@ -3210,6 +3213,9 @@ static void ZEND_FASTCALL zend_jit_pre_dec_obj_helper(zend_object *zobj, zend_st
32103213 }
32113214 } else {
32123215 zend_property_info * prop_info = (zend_property_info * ) CACHED_PTR_EX (cache_slot + 2 );
3216+ if (prop_info && !ZEND_TYPE_IS_SET (prop_info -> type )) {
3217+ prop_info = NULL ;
3218+ }
32133219
32143220 if (EXPECTED (Z_TYPE_P (prop ) == IS_LONG )) {
32153221 fast_long_decrement_function (prop );
@@ -3278,6 +3284,9 @@ static void ZEND_FASTCALL zend_jit_post_inc_obj_helper(zend_object *zobj, zend_s
32783284 ZVAL_NULL (result );
32793285 } else {
32803286 zend_property_info * prop_info = (zend_property_info * )CACHED_PTR_EX (cache_slot + 2 );
3287+ if (prop_info && !ZEND_TYPE_IS_SET (prop_info -> type )) {
3288+ prop_info = NULL ;
3289+ }
32813290
32823291 if (EXPECTED (Z_TYPE_P (prop ) == IS_LONG )) {
32833292 ZVAL_LONG (result , Z_LVAL_P (prop ));
@@ -3339,6 +3348,9 @@ static void ZEND_FASTCALL zend_jit_post_dec_obj_helper(zend_object *zobj, zend_s
33393348 ZVAL_NULL (result );
33403349 } else {
33413350 zend_property_info * prop_info = (zend_property_info * )CACHED_PTR_EX (cache_slot + 2 );
3351+ if (prop_info && !ZEND_TYPE_IS_SET (prop_info -> type )) {
3352+ prop_info = NULL ;
3353+ }
33423354
33433355 if (EXPECTED (Z_TYPE_P (prop ) == IS_LONG )) {
33443356 ZVAL_LONG (result , Z_LVAL_P (prop ));
0 commit comments