@@ -1506,6 +1506,26 @@ static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_use_object_as_array(v
1506
1506
zend_throw_error (NULL , "Cannot use object as array" );
1507
1507
}
1508
1508
1509
+ static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_illegal_array_offset_access (const zval * offset )
1510
+ {
1511
+ zend_illegal_container_offset (ZSTR_KNOWN (ZEND_STR_ARRAY ), offset , BP_VAR_RW );
1512
+ }
1513
+
1514
+ static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_illegal_array_offset_isset (const zval * offset )
1515
+ {
1516
+ zend_illegal_container_offset (ZSTR_KNOWN (ZEND_STR_ARRAY ), offset , BP_VAR_IS );
1517
+ }
1518
+
1519
+ static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_illegal_array_offset_unset (const zval * offset )
1520
+ {
1521
+ zend_illegal_container_offset (ZSTR_KNOWN (ZEND_STR_ARRAY ), offset , BP_VAR_UNSET );
1522
+ }
1523
+
1524
+ static zend_never_inline ZEND_COLD void ZEND_FASTCALL zend_illegal_string_offset_access (const zval * offset )
1525
+ {
1526
+ zend_illegal_container_offset (ZSTR_KNOWN (ZEND_STR_STRING ), offset , BP_VAR_RW );
1527
+ }
1528
+
1509
1529
static zend_never_inline void zend_assign_to_object_dim (zend_object * obj , zval * dim , zval * value OPLINE_DC EXECUTE_DATA_DC )
1510
1530
{
1511
1531
obj -> handlers -> write_dimension (obj , dim , value );
@@ -1631,7 +1651,7 @@ static zend_never_inline zend_long zend_check_string_offset(zval *dim, int type
1631
1651
}
1632
1652
return offset ;
1633
1653
}
1634
- zend_illegal_container_offset ( ZSTR_KNOWN ( ZEND_STR_STRING ), dim , type );
1654
+ zend_illegal_string_offset_access ( dim );
1635
1655
return 0 ;
1636
1656
}
1637
1657
case IS_UNDEF :
@@ -1647,7 +1667,7 @@ static zend_never_inline zend_long zend_check_string_offset(zval *dim, int type
1647
1667
dim = Z_REFVAL_P (dim );
1648
1668
goto try_again ;
1649
1669
default :
1650
- zend_illegal_container_offset ( ZSTR_KNOWN ( ZEND_STR_STRING ), dim , type );
1670
+ zend_illegal_string_offset_access ( dim );
1651
1671
return 0 ;
1652
1672
}
1653
1673
@@ -2370,7 +2390,7 @@ static zend_never_inline uint8_t slow_index_convert(HashTable *ht, const zval *d
2370
2390
value -> lval = 1 ;
2371
2391
return IS_LONG ;
2372
2392
default :
2373
- zend_illegal_container_offset ( ZSTR_KNOWN ( ZEND_STR_ARRAY ), dim , BP_VAR_R );
2393
+ zend_illegal_array_offset_access ( dim );
2374
2394
return IS_NULL ;
2375
2395
}
2376
2396
}
@@ -2444,7 +2464,7 @@ static zend_never_inline uint8_t slow_index_convert_w(HashTable *ht, const zval
2444
2464
value -> lval = 1 ;
2445
2465
return IS_LONG ;
2446
2466
default :
2447
- zend_illegal_container_offset ( ZSTR_KNOWN ( ZEND_STR_ARRAY ), dim , BP_VAR_W );
2467
+ zend_illegal_array_offset_access ( dim );
2448
2468
return IS_NULL ;
2449
2469
}
2450
2470
}
@@ -2742,7 +2762,7 @@ static zend_always_inline void zend_fetch_dimension_address_read(zval *result, z
2742
2762
ZVAL_NULL (result );
2743
2763
return ;
2744
2764
}
2745
- zend_illegal_container_offset ( ZSTR_KNOWN ( ZEND_STR_STRING ), dim , BP_VAR_R );
2765
+ zend_illegal_string_offset_access ( dim );
2746
2766
ZVAL_NULL (result );
2747
2767
return ;
2748
2768
}
@@ -2781,7 +2801,7 @@ static zend_always_inline void zend_fetch_dimension_address_read(zval *result, z
2781
2801
dim = Z_REFVAL_P (dim );
2782
2802
goto try_string_offset ;
2783
2803
default :
2784
- zend_illegal_container_offset ( ZSTR_KNOWN ( ZEND_STR_STRING ), dim , BP_VAR_R );
2804
+ zend_illegal_string_offset_access ( dim );
2785
2805
ZVAL_NULL (result );
2786
2806
return ;
2787
2807
}
@@ -2903,7 +2923,7 @@ static zend_never_inline zval* ZEND_FASTCALL zend_find_array_dim_slow(HashTable
2903
2923
ZVAL_UNDEFINED_OP2 ();
2904
2924
goto str_idx ;
2905
2925
} else {
2906
- zend_illegal_container_offset ( ZSTR_KNOWN ( ZEND_STR_ARRAY ), offset , BP_VAR_IS );
2926
+ zend_illegal_array_offset_isset ( offset );
2907
2927
return NULL ;
2908
2928
}
2909
2929
}
@@ -3026,7 +3046,7 @@ static zend_never_inline bool ZEND_FASTCALL zend_array_key_exists_fast(HashTable
3026
3046
str = ZSTR_EMPTY_ALLOC ();
3027
3047
goto str_key ;
3028
3048
} else {
3029
- zend_illegal_container_offset ( ZSTR_KNOWN ( ZEND_STR_ARRAY ), key , BP_VAR_R );
3049
+ zend_illegal_array_offset_access ( key );
3030
3050
return 0 ;
3031
3051
}
3032
3052
}
0 commit comments