@@ -561,8 +561,8 @@ static void float_div(zend_long a, zend_long b, zend_long *r1, zend_long *r2) {
561
561
}
562
562
563
563
static bool zend_inference_calc_binary_op_range (
564
- const zend_op_array * op_array , zend_ssa * ssa ,
565
- zend_op * opline , zend_ssa_op * ssa_op , zend_uchar opcode , zend_ssa_range * tmp ) {
564
+ const zend_op_array * op_array , const zend_ssa * ssa ,
565
+ const zend_op * opline , const zend_ssa_op * ssa_op , zend_uchar opcode , zend_ssa_range * tmp ) {
566
566
zend_long op1_min , op2_min , op1_max , op2_max , t1 , t2 , t3 , t4 ;
567
567
568
568
switch (opcode ) {
@@ -845,22 +845,22 @@ static bool zend_inference_calc_binary_op_range(
845
845
return 0 ;
846
846
}
847
847
848
- 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 )
848
+ 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 )
849
849
{
850
850
uint32_t line ;
851
- zend_op * opline ;
852
- zend_ssa_op * ssa_op ;
851
+ const zend_op * opline ;
852
+ const zend_ssa_op * ssa_op ;
853
853
854
854
if (ssa -> vars [var ].definition_phi ) {
855
- zend_ssa_phi * p = ssa -> vars [var ].definition_phi ;
855
+ const zend_ssa_phi * p = ssa -> vars [var ].definition_phi ;
856
856
int i ;
857
857
858
858
tmp -> underflow = 0 ;
859
859
tmp -> min = ZEND_LONG_MAX ;
860
860
tmp -> max = ZEND_LONG_MIN ;
861
861
tmp -> overflow = 0 ;
862
862
if (p -> pi >= 0 && p -> has_range_constraint ) {
863
- zend_ssa_range_constraint * constraint = & p -> constraint .range ;
863
+ const zend_ssa_range_constraint * constraint = & p -> constraint .range ;
864
864
if (constraint -> negative ) {
865
865
int src1 = p -> sources [0 ];
866
866
@@ -879,7 +879,7 @@ static bool zend_inference_calc_range(const zend_op_array *op_array, zend_ssa *s
879
879
case ZEND_PRE_DEC :
880
880
case ZEND_POST_DEC :
881
881
if (!tmp -> underflow ) {
882
- zend_ssa_phi * p = ssa -> vars [ssa -> ops [line ].op1_use ].definition_phi ;
882
+ const zend_ssa_phi * p = ssa -> vars [ssa -> ops [line ].op1_use ].definition_phi ;
883
883
884
884
if (p && p -> pi < 0
885
885
&& ssa -> cfg .blocks [p -> block ].predecessors_count == 2
@@ -893,7 +893,7 @@ static bool zend_inference_calc_range(const zend_op_array *op_array, zend_ssa *s
893
893
case ZEND_PRE_INC :
894
894
case ZEND_POST_INC :
895
895
if (!tmp -> overflow ) {
896
- zend_ssa_phi * p = ssa -> vars [ssa -> ops [line ].op1_use ].definition_phi ;
896
+ const zend_ssa_phi * p = ssa -> vars [ssa -> ops [line ].op1_use ].definition_phi ;
897
897
898
898
if (p && p -> pi < 0
899
899
&& ssa -> cfg .blocks [p -> block ].predecessors_count == 2
@@ -1026,7 +1026,7 @@ static bool zend_inference_calc_range(const zend_op_array *op_array, zend_ssa *s
1026
1026
return zend_inference_propagate_range (op_array , ssa , opline , ssa_op , var , tmp );
1027
1027
}
1028
1028
1029
- 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 )
1029
+ 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 )
1030
1030
{
1031
1031
tmp -> underflow = 0 ;
1032
1032
tmp -> overflow = 0 ;
@@ -1326,8 +1326,8 @@ ZEND_API bool zend_inference_propagate_range(const zend_op_array *op_array, zend
1326
1326
case ZEND_DO_UCALL :
1327
1327
case ZEND_DO_FCALL_BY_NAME :
1328
1328
if (ssa_op -> result_def == var ) {
1329
- zend_func_info * func_info = ZEND_FUNC_INFO (op_array );
1330
- zend_call_info * call_info ;
1329
+ const zend_func_info * func_info = ZEND_FUNC_INFO (op_array );
1330
+ const zend_call_info * call_info ;
1331
1331
if (!func_info || !func_info -> call_map ) {
1332
1332
break ;
1333
1333
}
@@ -1499,7 +1499,7 @@ static bool zend_check_inner_cycles(const zend_op_array *op_array, zend_ssa *ssa
1499
1499
}
1500
1500
#endif
1501
1501
1502
- static void zend_infer_ranges_warmup (const zend_op_array * op_array , zend_ssa * ssa , int * scc_var , int * next_scc_var , int scc )
1502
+ 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 )
1503
1503
{
1504
1504
int worklist_len = zend_bitset_len (ssa -> vars_count );
1505
1505
int j , n ;
@@ -2153,13 +2153,13 @@ static uint32_t zend_convert_type(const zend_script *script, zend_type type, zen
2153
2153
return tmp ;
2154
2154
}
2155
2155
2156
- ZEND_API uint32_t zend_fetch_arg_info_type (const zend_script * script , zend_arg_info * arg_info , zend_class_entry * * pce )
2156
+ ZEND_API uint32_t zend_fetch_arg_info_type (const zend_script * script , const zend_arg_info * arg_info , zend_class_entry * * pce )
2157
2157
{
2158
2158
return zend_convert_type (script , arg_info -> type , pce );
2159
2159
}
2160
2160
2161
- static zend_property_info * lookup_prop_info (zend_class_entry * ce , zend_string * name , zend_class_entry * scope ) {
2162
- zend_property_info * prop_info ;
2161
+ static const zend_property_info * lookup_prop_info (const zend_class_entry * ce , zend_string * name , zend_class_entry * scope ) {
2162
+ const zend_property_info * prop_info ;
2163
2163
2164
2164
/* If the class is linked, reuse the precise runtime logic. */
2165
2165
if ((ce -> ce_flags & ZEND_ACC_LINKED )
@@ -2185,11 +2185,11 @@ static zend_property_info *lookup_prop_info(zend_class_entry *ce, zend_string *n
2185
2185
return NULL ;
2186
2186
}
2187
2187
2188
- 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 )
2188
+ 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 )
2189
2189
{
2190
- zend_property_info * prop_info = NULL ;
2190
+ const zend_property_info * prop_info = NULL ;
2191
2191
if (opline -> op2_type == IS_CONST ) {
2192
- zend_class_entry * ce = NULL ;
2192
+ const zend_class_entry * ce = NULL ;
2193
2193
2194
2194
if (opline -> op1_type == IS_UNUSED ) {
2195
2195
ce = op_array -> scope ;
@@ -2208,9 +2208,9 @@ static zend_property_info *zend_fetch_prop_info(const zend_op_array *op_array, z
2208
2208
return prop_info ;
2209
2209
}
2210
2210
2211
- 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 )
2211
+ 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 )
2212
2212
{
2213
- zend_property_info * prop_info = NULL ;
2213
+ const zend_property_info * prop_info = NULL ;
2214
2214
if (opline -> op1_type == IS_CONST ) {
2215
2215
zend_class_entry * ce = NULL ;
2216
2216
if (opline -> op2_type == IS_UNUSED ) {
@@ -2244,7 +2244,7 @@ static zend_property_info *zend_fetch_static_prop_info(const zend_script *script
2244
2244
return prop_info ;
2245
2245
}
2246
2246
2247
- static uint32_t zend_fetch_prop_type (const zend_script * script , zend_property_info * prop_info , zend_class_entry * * pce )
2247
+ static uint32_t zend_fetch_prop_type (const zend_script * script , const zend_property_info * prop_info , zend_class_entry * * pce )
2248
2248
{
2249
2249
if (!prop_info ) {
2250
2250
if (pce ) {
@@ -2280,7 +2280,7 @@ static zend_always_inline zend_result _zend_update_type_info(
2280
2280
zend_ssa * ssa ,
2281
2281
const zend_script * script ,
2282
2282
zend_bitset worklist ,
2283
- zend_op * opline ,
2283
+ const zend_op * opline ,
2284
2284
zend_ssa_op * ssa_op ,
2285
2285
const zend_op * * ssa_opcodes ,
2286
2286
zend_long optimization_level ,
@@ -2490,7 +2490,7 @@ static zend_always_inline zend_result _zend_update_type_info(
2490
2490
case ZEND_ASSIGN_OBJ_OP :
2491
2491
case ZEND_ASSIGN_STATIC_PROP_OP :
2492
2492
{
2493
- zend_property_info * prop_info = NULL ;
2493
+ const zend_property_info * prop_info = NULL ;
2494
2494
orig = 0 ;
2495
2495
tmp = 0 ;
2496
2496
if (opline -> opcode == ZEND_ASSIGN_OBJ_OP ) {
@@ -3454,13 +3454,13 @@ static zend_always_inline zend_result _zend_update_type_info(
3454
3454
tmp |= MAY_BE_NULL ;
3455
3455
}
3456
3456
if (opline -> op1_type == IS_UNUSED || (t1 & MAY_BE_OBJECT )) {
3457
- zend_property_info * prop_info = zend_fetch_prop_info (op_array , ssa , opline , ssa_op );
3457
+ const zend_property_info * prop_info = zend_fetch_prop_info (op_array , ssa , opline , ssa_op );
3458
3458
tmp |= zend_fetch_prop_type (script , prop_info , & ce );
3459
3459
if (opline -> opcode != ZEND_FETCH_OBJ_R && opline -> opcode != ZEND_FETCH_OBJ_IS ) {
3460
3460
tmp |= MAY_BE_REF | MAY_BE_INDIRECT ;
3461
3461
ce = NULL ;
3462
3462
} else if (!(opline -> op1_type & (IS_VAR |IS_TMP_VAR )) || !(t1 & MAY_BE_RC1 )) {
3463
- zend_class_entry * ce = NULL ;
3463
+ const zend_class_entry * ce = NULL ;
3464
3464
3465
3465
if (opline -> op1_type == IS_UNUSED ) {
3466
3466
ce = op_array -> scope ;
@@ -4487,7 +4487,7 @@ ZEND_API zend_result zend_ssa_inference(zend_arena **arena, const zend_op_array
4487
4487
}
4488
4488
/* }}} */
4489
4489
4490
- 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 )
4490
+ 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 )
4491
4491
{
4492
4492
if (opline -> op1_type == IS_CV ) {
4493
4493
if (t1 & MAY_BE_UNDEF ) {
@@ -4765,8 +4765,8 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
4765
4765
}
4766
4766
}
4767
4767
if (ssa_op -> op1_use ) {
4768
- zend_ssa_var_info * var_info = ssa -> var_info + ssa_op -> op1_use ;
4769
- zend_class_entry * ce = var_info -> ce ;
4768
+ const zend_ssa_var_info * var_info = ssa -> var_info + ssa_op -> op1_use ;
4769
+ const zend_class_entry * ce = var_info -> ce ;
4770
4770
4771
4771
if (var_info -> is_instanceof ||
4772
4772
!ce || ce -> create_object || ce -> __get || ce -> __set || ce -> parent ) {
@@ -4813,7 +4813,7 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
4813
4813
}
4814
4814
if (op_array -> fn_flags & ZEND_ACC_HAS_TYPE_HINTS ) {
4815
4815
uint32_t arg_num = opline -> op1 .num ;
4816
- zend_arg_info * cur_arg_info ;
4816
+ const zend_arg_info * cur_arg_info ;
4817
4817
4818
4818
if (EXPECTED (arg_num <= op_array -> num_args )) {
4819
4819
cur_arg_info = & op_array -> arg_info [arg_num - 1 ];
@@ -4889,7 +4889,7 @@ ZEND_API bool zend_may_throw_ex(const zend_op *opline, const zend_ssa_op *ssa_op
4889
4889
}
4890
4890
}
4891
4891
4892
- 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 )
4892
+ 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 )
4893
4893
{
4894
4894
return zend_may_throw_ex (opline , ssa_op , op_array , ssa , OP1_INFO (), OP2_INFO ());
4895
4895
}
0 commit comments