@@ -794,8 +794,8 @@ static void float_div(zend_long a, zend_long b, zend_long *r1, zend_long *r2) {
794
794
}
795
795
796
796
static bool zend_inference_calc_binary_op_range (
797
- const zend_op_array * op_array , zend_ssa * ssa ,
798
- zend_op * opline , zend_ssa_op * ssa_op , zend_uchar opcode , zend_ssa_range * tmp ) {
797
+ const zend_op_array * op_array , const zend_ssa * ssa ,
798
+ const zend_op * opline , const zend_ssa_op * ssa_op , zend_uchar opcode , zend_ssa_range * tmp ) {
799
799
zend_long op1_min , op2_min , op1_max , op2_max , t1 , t2 , t3 , t4 ;
800
800
801
801
switch (opcode ) {
@@ -1078,22 +1078,22 @@ static bool zend_inference_calc_binary_op_range(
1078
1078
return 0 ;
1079
1079
}
1080
1080
1081
- static bool zend_inference_calc_range (const zend_op_array * op_array , zend_ssa * ssa , int var , int widening , int narrowing , zend_ssa_range * tmp )
1081
+ static bool zend_inference_calc_range (const zend_op_array * op_array , const zend_ssa * ssa , int var , int widening , int narrowing , zend_ssa_range * tmp )
1082
1082
{
1083
1083
uint32_t line ;
1084
- zend_op * opline ;
1085
- zend_ssa_op * ssa_op ;
1084
+ const zend_op * opline ;
1085
+ const zend_ssa_op * ssa_op ;
1086
1086
1087
1087
if (ssa -> vars [var ].definition_phi ) {
1088
- zend_ssa_phi * p = ssa -> vars [var ].definition_phi ;
1088
+ const zend_ssa_phi * p = ssa -> vars [var ].definition_phi ;
1089
1089
int i ;
1090
1090
1091
1091
tmp -> underflow = 0 ;
1092
1092
tmp -> min = ZEND_LONG_MAX ;
1093
1093
tmp -> max = ZEND_LONG_MIN ;
1094
1094
tmp -> overflow = 0 ;
1095
1095
if (p -> pi >= 0 && p -> has_range_constraint ) {
1096
- zend_ssa_range_constraint * constraint = & p -> constraint .range ;
1096
+ const zend_ssa_range_constraint * constraint = & p -> constraint .range ;
1097
1097
if (constraint -> negative ) {
1098
1098
int src1 = p -> sources [0 ];
1099
1099
@@ -1112,7 +1112,7 @@ static bool zend_inference_calc_range(const zend_op_array *op_array, zend_ssa *s
1112
1112
case ZEND_PRE_DEC :
1113
1113
case ZEND_POST_DEC :
1114
1114
if (!tmp -> underflow ) {
1115
- zend_ssa_phi * p = ssa -> vars [ssa -> ops [line ].op1_use ].definition_phi ;
1115
+ const zend_ssa_phi * p = ssa -> vars [ssa -> ops [line ].op1_use ].definition_phi ;
1116
1116
1117
1117
if (p && p -> pi < 0
1118
1118
&& ssa -> cfg .blocks [p -> block ].predecessors_count == 2
@@ -1126,7 +1126,7 @@ static bool zend_inference_calc_range(const zend_op_array *op_array, zend_ssa *s
1126
1126
case ZEND_PRE_INC :
1127
1127
case ZEND_POST_INC :
1128
1128
if (!tmp -> overflow ) {
1129
- zend_ssa_phi * p = ssa -> vars [ssa -> ops [line ].op1_use ].definition_phi ;
1129
+ const zend_ssa_phi * p = ssa -> vars [ssa -> ops [line ].op1_use ].definition_phi ;
1130
1130
1131
1131
if (p && p -> pi < 0
1132
1132
&& ssa -> cfg .blocks [p -> block ].predecessors_count == 2
@@ -1259,7 +1259,7 @@ static bool zend_inference_calc_range(const zend_op_array *op_array, zend_ssa *s
1259
1259
return zend_inference_propagate_range (op_array , ssa , opline , ssa_op , var , tmp );
1260
1260
}
1261
1261
1262
- ZEND_API bool zend_inference_propagate_range (const zend_op_array * op_array , zend_ssa * ssa , zend_op * opline , zend_ssa_op * ssa_op , int var , zend_ssa_range * tmp )
1262
+ ZEND_API bool zend_inference_propagate_range (const zend_op_array * op_array , const zend_ssa * ssa , const zend_op * opline , const zend_ssa_op * ssa_op , int var , zend_ssa_range * tmp )
1263
1263
{
1264
1264
tmp -> underflow = 0 ;
1265
1265
tmp -> overflow = 0 ;
@@ -1559,8 +1559,8 @@ ZEND_API bool zend_inference_propagate_range(const zend_op_array *op_array, zend
1559
1559
case ZEND_DO_UCALL :
1560
1560
case ZEND_DO_FCALL_BY_NAME :
1561
1561
if (ssa_op -> result_def == var ) {
1562
- zend_func_info * func_info = ZEND_FUNC_INFO (op_array );
1563
- zend_call_info * call_info ;
1562
+ const zend_func_info * func_info = ZEND_FUNC_INFO (op_array );
1563
+ const zend_call_info * call_info ;
1564
1564
if (!func_info || !func_info -> call_map ) {
1565
1565
break ;
1566
1566
}
@@ -1732,7 +1732,7 @@ static bool zend_check_inner_cycles(const zend_op_array *op_array, zend_ssa *ssa
1732
1732
}
1733
1733
#endif
1734
1734
1735
- static void zend_infer_ranges_warmup (const zend_op_array * op_array , zend_ssa * ssa , int * scc_var , int * next_scc_var , int scc )
1735
+ static void zend_infer_ranges_warmup (const zend_op_array * op_array , zend_ssa * ssa , const int * scc_var , const int * next_scc_var , int scc )
1736
1736
{
1737
1737
int worklist_len = zend_bitset_len (ssa -> vars_count );
1738
1738
int j , n ;
@@ -2399,13 +2399,13 @@ static uint32_t zend_convert_type(const zend_script *script, zend_type type, zen
2399
2399
return tmp ;
2400
2400
}
2401
2401
2402
- ZEND_API uint32_t zend_fetch_arg_info_type (const zend_script * script , zend_arg_info * arg_info , zend_class_entry * * pce )
2402
+ ZEND_API uint32_t zend_fetch_arg_info_type (const zend_script * script , const zend_arg_info * arg_info , zend_class_entry * * pce )
2403
2403
{
2404
2404
return zend_convert_type (script , arg_info -> type , pce );
2405
2405
}
2406
2406
2407
- static zend_property_info * lookup_prop_info (zend_class_entry * ce , zend_string * name , zend_class_entry * scope ) {
2408
- zend_property_info * prop_info ;
2407
+ static const zend_property_info * lookup_prop_info (const zend_class_entry * ce , zend_string * name , zend_class_entry * scope ) {
2408
+ const zend_property_info * prop_info ;
2409
2409
2410
2410
/* If the class is linked, reuse the precise runtime logic. */
2411
2411
if ((ce -> ce_flags & ZEND_ACC_LINKED )
@@ -2431,11 +2431,11 @@ static zend_property_info *lookup_prop_info(zend_class_entry *ce, zend_string *n
2431
2431
return NULL ;
2432
2432
}
2433
2433
2434
- static zend_property_info * zend_fetch_prop_info (const zend_op_array * op_array , zend_ssa * ssa , zend_op * opline , zend_ssa_op * ssa_op )
2434
+ static const zend_property_info * zend_fetch_prop_info (const zend_op_array * op_array , zend_ssa * ssa , const zend_op * opline , const zend_ssa_op * ssa_op )
2435
2435
{
2436
- zend_property_info * prop_info = NULL ;
2436
+ const zend_property_info * prop_info = NULL ;
2437
2437
if (opline -> op2_type == IS_CONST ) {
2438
- zend_class_entry * ce = NULL ;
2438
+ const zend_class_entry * ce = NULL ;
2439
2439
2440
2440
if (opline -> op1_type == IS_UNUSED && !(op_array -> fn_flags & ZEND_ACC_TRAIT_CLONE )) {
2441
2441
ce = op_array -> scope ;
@@ -2454,9 +2454,9 @@ static zend_property_info *zend_fetch_prop_info(const zend_op_array *op_array, z
2454
2454
return prop_info ;
2455
2455
}
2456
2456
2457
- static zend_property_info * zend_fetch_static_prop_info (const zend_script * script , const zend_op_array * op_array , zend_ssa * ssa , zend_op * opline )
2457
+ static const zend_property_info * zend_fetch_static_prop_info (const zend_script * script , const zend_op_array * op_array , const zend_ssa * ssa , const zend_op * opline )
2458
2458
{
2459
- zend_property_info * prop_info = NULL ;
2459
+ const zend_property_info * prop_info = NULL ;
2460
2460
if (opline -> op1_type == IS_CONST ) {
2461
2461
zend_class_entry * ce = NULL ;
2462
2462
if (opline -> op2_type == IS_UNUSED ) {
@@ -2490,7 +2490,7 @@ static zend_property_info *zend_fetch_static_prop_info(const zend_script *script
2490
2490
return prop_info ;
2491
2491
}
2492
2492
2493
- static uint32_t zend_fetch_prop_type (const zend_script * script , zend_property_info * prop_info , zend_class_entry * * pce )
2493
+ static uint32_t zend_fetch_prop_type (const zend_script * script , const zend_property_info * prop_info , zend_class_entry * * pce )
2494
2494
{
2495
2495
if (!prop_info ) {
2496
2496
if (pce ) {
@@ -2526,7 +2526,7 @@ static zend_always_inline zend_result _zend_update_type_info(
2526
2526
zend_ssa * ssa ,
2527
2527
const zend_script * script ,
2528
2528
zend_bitset worklist ,
2529
- zend_op * opline ,
2529
+ const zend_op * opline ,
2530
2530
zend_ssa_op * ssa_op ,
2531
2531
const zend_op * * ssa_opcodes ,
2532
2532
zend_long optimization_level ,
@@ -2740,7 +2740,7 @@ static zend_always_inline zend_result _zend_update_type_info(
2740
2740
case ZEND_ASSIGN_OBJ_OP :
2741
2741
case ZEND_ASSIGN_STATIC_PROP_OP :
2742
2742
{
2743
- zend_property_info * prop_info = NULL ;
2743
+ const zend_property_info * prop_info = NULL ;
2744
2744
orig = 0 ;
2745
2745
tmp = 0 ;
2746
2746
if (opline -> opcode == ZEND_ASSIGN_OBJ_OP ) {
@@ -3750,7 +3750,7 @@ static zend_always_inline zend_result _zend_update_type_info(
3750
3750
tmp |= MAY_BE_NULL ;
3751
3751
}
3752
3752
if (opline -> op1_type == IS_UNUSED || (t1 & MAY_BE_OBJECT )) {
3753
- zend_property_info * prop_info = zend_fetch_prop_info (op_array , ssa , opline , ssa_op );
3753
+ const zend_property_info * prop_info = zend_fetch_prop_info (op_array , ssa , opline , ssa_op );
3754
3754
tmp |= zend_fetch_prop_type (script , prop_info , & ce );
3755
3755
if (opline -> opcode != ZEND_FETCH_OBJ_R && opline -> opcode != ZEND_FETCH_OBJ_IS ) {
3756
3756
tmp |= MAY_BE_REF | MAY_BE_INDIRECT ;
@@ -3759,7 +3759,7 @@ static zend_always_inline zend_result _zend_update_type_info(
3759
3759
}
3760
3760
ce = NULL ;
3761
3761
} else if (!(opline -> op1_type & (IS_VAR |IS_TMP_VAR )) || !(t1 & MAY_BE_RC1 )) {
3762
- zend_class_entry * ce = NULL ;
3762
+ const zend_class_entry * ce = NULL ;
3763
3763
3764
3764
if (opline -> op1_type == IS_UNUSED ) {
3765
3765
ce = op_array -> scope ;
@@ -4785,7 +4785,7 @@ ZEND_API zend_result zend_ssa_inference(zend_arena **arena, const zend_op_array
4785
4785
}
4786
4786
/* }}} */
4787
4787
4788
- ZEND_API bool zend_may_throw_ex (const zend_op * opline , const zend_ssa_op * ssa_op , const zend_op_array * op_array , zend_ssa * ssa , uint32_t t1 , uint32_t t2 )
4788
+ ZEND_API bool zend_may_throw_ex (const zend_op * opline , const zend_ssa_op * ssa_op , const zend_op_array * op_array , const zend_ssa * ssa , uint32_t t1 , uint32_t t2 )
4789
4789
{
4790
4790
if (opline -> op1_type == IS_CV ) {
4791
4791
if (t1 & MAY_BE_UNDEF ) {
@@ -5066,8 +5066,8 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
5066
5066
}
5067
5067
}
5068
5068
if (ssa_op -> op1_use ) {
5069
- zend_ssa_var_info * var_info = ssa -> var_info + ssa_op -> op1_use ;
5070
- zend_class_entry * ce = var_info -> ce ;
5069
+ const zend_ssa_var_info * var_info = ssa -> var_info + ssa_op -> op1_use ;
5070
+ const zend_class_entry * ce = var_info -> ce ;
5071
5071
5072
5072
if (var_info -> is_instanceof ||
5073
5073
!ce || ce -> create_object || ce -> __get || ce -> __set || ce -> parent ) {
@@ -5114,7 +5114,7 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
5114
5114
}
5115
5115
if (op_array -> fn_flags & ZEND_ACC_HAS_TYPE_HINTS ) {
5116
5116
uint32_t arg_num = opline -> op1 .num ;
5117
- zend_arg_info * cur_arg_info ;
5117
+ const zend_arg_info * cur_arg_info ;
5118
5118
5119
5119
if (EXPECTED (arg_num <= op_array -> num_args )) {
5120
5120
cur_arg_info = & op_array -> arg_info [arg_num - 1 ];
@@ -5190,7 +5190,7 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
5190
5190
}
5191
5191
}
5192
5192
5193
- ZEND_API bool zend_may_throw (const zend_op * opline , const zend_ssa_op * ssa_op , const zend_op_array * op_array , zend_ssa * ssa )
5193
+ ZEND_API bool zend_may_throw (const zend_op * opline , const zend_ssa_op * ssa_op , const zend_op_array * op_array , const zend_ssa * ssa )
5194
5194
{
5195
5195
return zend_may_throw_ex (opline , ssa_op , op_array , ssa , OP1_INFO (), OP2_INFO ());
5196
5196
}
0 commit comments