@@ -1227,12 +1227,6 @@ rb_obj_fields(VALUE obj, ID id)
12271227 return fields_obj ;
12281228}
12291229
1230- VALUE
1231- rb_obj_fields_no_ractor_check (VALUE obj )
1232- {
1233- return rb_obj_fields (obj , 0 );
1234- }
1235-
12361230void
12371231rb_free_generic_ivar (VALUE obj )
12381232{
@@ -1576,7 +1570,7 @@ rb_ivar_delete(VALUE obj, ID id, VALUE undef)
15761570 break ;
15771571
15781572 default : {
1579- VALUE fields_obj = rb_obj_fields (obj , 0 );
1573+ VALUE fields_obj = rb_obj_fields (obj , id );
15801574 table = rb_imemo_fields_complex_tbl (fields_obj );
15811575 break ;
15821576 }
@@ -2138,7 +2132,7 @@ ivar_defined0(VALUE obj, ID id)
21382132 break ;
21392133
21402134 default : {
2141- VALUE fields_obj = rb_obj_fields (obj , 0 );
2135+ VALUE fields_obj = rb_obj_fields_no_ractor_check (obj ); // defined? doesn't require ractor checks
21422136 table = rb_imemo_fields_complex_tbl (fields_obj );
21432137 }
21442138 }
@@ -2290,7 +2284,7 @@ rb_copy_generic_ivar(VALUE dest, VALUE obj)
22902284
22912285 shape_id_t src_shape_id = rb_obj_shape_id (obj );
22922286
2293- VALUE fields_obj = rb_obj_fields (obj , 0 );
2287+ VALUE fields_obj = rb_obj_fields_no_ractor_check (obj );
22942288 if (fields_obj ) {
22952289 unsigned long src_num_ivs = rb_ivar_count (fields_obj );
22962290 if (!src_num_ivs ) {
@@ -2381,7 +2375,7 @@ rb_field_foreach(VALUE obj, rb_ivar_foreach_callback_func *func, st_data_t arg,
23812375 break ;
23822376 default :
23832377 {
2384- VALUE fields_obj = rb_obj_fields (obj , 0 );
2378+ VALUE fields_obj = rb_obj_fields_no_ractor_check (obj );
23852379 if (fields_obj ) {
23862380 imemo_fields_each (fields_obj , func , arg , ivar_only );
23872381 }
@@ -2436,7 +2430,7 @@ rb_ivar_count(VALUE obj)
24362430
24372431 default :
24382432 {
2439- VALUE fields_obj = rb_obj_fields (obj , 0 );
2433+ VALUE fields_obj = rb_obj_fields_no_ractor_check (obj );
24402434 if (fields_obj ) {
24412435 if (rb_shape_obj_too_complex_p (fields_obj )) {
24422436 rb_st_table_size (rb_imemo_fields_complex_tbl (fields_obj ));
0 commit comments