@@ -2663,6 +2663,11 @@ static void ZEND_FASTCALL zend_jit_assign_obj_op_helper(zend_object *zobj, zend_
2663
2663
/* special case for typed properties */
2664
2664
zend_jit_assign_op_to_typed_prop (zptr , prop_info , value , binary_op );
2665
2665
} else {
2666
+ /* This case can ***ONLY*** happen if get_property_ptr_ptr emits a diagnostic
2667
+ * (e.g. undefined property warning) and the property is unset in the error handler */
2668
+ if (UNEXPECTED (Z_TYPE_P (zptr ) == IS_UNDEF )) {
2669
+ ZVAL_NULL (zptr );
2670
+ }
2666
2671
binary_op (zptr , zptr , value );
2667
2672
}
2668
2673
} while (0 );
@@ -2877,6 +2882,11 @@ static void ZEND_FASTCALL zend_jit_pre_inc_obj_helper(zend_object *zobj, zend_st
2877
2882
break ;
2878
2883
}
2879
2884
}
2885
+ /* This case can ***ONLY*** happen if get_property_ptr_ptr emits a diagnostic
2886
+ * (e.g. undefined property warning) and the property is unset in the error handler */
2887
+ if (UNEXPECTED (Z_TYPE_P (prop ) == IS_UNDEF )) {
2888
+ ZVAL_NULL (prop );
2889
+ }
2880
2890
2881
2891
if (UNEXPECTED (prop_info )) {
2882
2892
zend_jit_inc_typed_prop (prop , prop_info );
@@ -2947,6 +2957,11 @@ static void ZEND_FASTCALL zend_jit_pre_dec_obj_helper(zend_object *zobj, zend_st
2947
2957
break ;
2948
2958
}
2949
2959
}
2960
+ /* This case can ***ONLY*** happen if get_property_ptr_ptr emits a diagnostic
2961
+ * (e.g. undefined property warning) and the property is unset in the error handler */
2962
+ if (UNEXPECTED (Z_TYPE_P (prop ) == IS_UNDEF )) {
2963
+ ZVAL_NULL (prop );
2964
+ }
2950
2965
2951
2966
if (UNEXPECTED (prop_info )) {
2952
2967
zend_jit_dec_typed_prop (prop , prop_info );
@@ -3015,6 +3030,11 @@ static void ZEND_FASTCALL zend_jit_post_inc_obj_helper(zend_object *zobj, zend_s
3015
3030
return ;
3016
3031
}
3017
3032
}
3033
+ /* This case can ***ONLY*** happen if get_property_ptr_ptr emits a diagnostic
3034
+ * (e.g. undefined property warning) and the property is unset in the error handler */
3035
+ if (UNEXPECTED (Z_TYPE_P (prop ) == IS_UNDEF )) {
3036
+ ZVAL_NULL (prop );
3037
+ }
3018
3038
3019
3039
if (UNEXPECTED (prop_info )) {
3020
3040
zend_jit_post_inc_typed_prop (prop , prop_info , result );
@@ -3076,6 +3096,11 @@ static void ZEND_FASTCALL zend_jit_post_dec_obj_helper(zend_object *zobj, zend_s
3076
3096
return ;
3077
3097
}
3078
3098
}
3099
+ /* This case can ***ONLY*** happen if get_property_ptr_ptr emits a diagnostic
3100
+ * (e.g. undefined property warning) and the property is unset in the error handler */
3101
+ if (UNEXPECTED (Z_TYPE_P (prop ) == IS_UNDEF )) {
3102
+ ZVAL_NULL (prop );
3103
+ }
3079
3104
3080
3105
if (UNEXPECTED (prop_info )) {
3081
3106
zend_jit_post_dec_typed_prop (prop , prop_info , result );
0 commit comments