@@ -1307,7 +1307,7 @@ rb_obj_field_get(VALUE obj, shape_id_t target_shape_id)
13071307
13081308 if (BUILTIN_TYPE (obj ) == T_CLASS || BUILTIN_TYPE (obj ) == T_MODULE ) {
13091309 ASSERT_vm_locking ();
1310- VALUE field_obj = RCLASS_FIELDS_OBJ (obj );
1310+ VALUE field_obj = RCLASS_WRITABLE_FIELDS_OBJ (obj );
13111311 if (field_obj ) {
13121312 return rb_obj_field_get (field_obj , target_shape_id );
13131313 }
@@ -1375,7 +1375,7 @@ rb_ivar_lookup(VALUE obj, ID id, VALUE undef)
13751375 VALUE val = undef ;
13761376 RB_VM_LOCK_ENTER ();
13771377 {
1378- VALUE fields_obj = RCLASS_FIELDS_OBJ (obj );
1378+ VALUE fields_obj = RCLASS_WRITABLE_FIELDS_OBJ (obj );
13791379 if (fields_obj ) {
13801380 val = rb_ivar_lookup (fields_obj , id , undef );
13811381 }
@@ -1492,7 +1492,7 @@ rb_ivar_delete(VALUE obj, ID id, VALUE undef)
14921492 if (BUILTIN_TYPE (obj ) == T_CLASS || BUILTIN_TYPE (obj ) == T_MODULE ) {
14931493 IVAR_ACCESSOR_SHOULD_BE_MAIN_RACTOR (id );
14941494
1495- VALUE fields_obj = RCLASS_FIELDS_OBJ (obj );
1495+ VALUE fields_obj = RCLASS_WRITABLE_FIELDS_OBJ (obj );
14961496 if (fields_obj ) {
14971497 RB_VM_LOCK_ENTER ();
14981498 {
@@ -1614,8 +1614,7 @@ static shape_id_t
16141614obj_transition_too_complex (VALUE obj , st_table * table )
16151615{
16161616 if (BUILTIN_TYPE (obj ) == T_CLASS || BUILTIN_TYPE (obj ) == T_MODULE ) {
1617- RUBY_ASSERT (RCLASS_FIELDS_OBJ (obj ));
1618- return obj_transition_too_complex (RCLASS_FIELDS_OBJ (obj ), table );
1617+ return obj_transition_too_complex (RCLASS_WRITABLE_ENSURE_FIELDS_OBJ (obj ), table );
16191618 }
16201619
16211620 RUBY_ASSERT (!rb_shape_obj_too_complex_p (obj ));
@@ -2062,7 +2061,7 @@ rb_obj_set_shape_id(VALUE obj, shape_id_t shape_id)
20622061 if (BUILTIN_TYPE (obj ) == T_CLASS || BUILTIN_TYPE (obj ) == T_MODULE ) {
20632062 // Avoid creating the fields_obj just to freeze the class
20642063 if (!(shape_id == SPECIAL_CONST_SHAPE_ID && old_shape_id == ROOT_SHAPE_ID )) {
2065- RBASIC_SET_SHAPE_ID (RCLASS_ENSURE_FIELDS_OBJ (obj ), shape_id );
2064+ RBASIC_SET_SHAPE_ID (RCLASS_WRITABLE_ENSURE_FIELDS_OBJ (obj ), shape_id );
20662065 }
20672066 }
20682067 // FIXME: How to do multi-shape?
@@ -2201,7 +2200,7 @@ rb_ivar_defined(VALUE obj, ID id)
22012200 case T_CLASS :
22022201 case T_MODULE :
22032202 RB_VM_LOCKING () {
2204- VALUE fields_obj = RCLASS_FIELDS_OBJ (obj );
2203+ VALUE fields_obj = RCLASS_WRITABLE_FIELDS_OBJ (obj );
22052204 if (fields_obj ) {
22062205 defined = ivar_defined0 (fields_obj , id );
22072206 }
@@ -2455,7 +2454,7 @@ rb_field_foreach(VALUE obj, rb_ivar_foreach_callback_func *func, st_data_t arg,
24552454 case T_MODULE :
24562455 IVAR_ACCESSOR_SHOULD_BE_MAIN_RACTOR (0 );
24572456 RB_VM_LOCKING () {
2458- VALUE fields_obj = RCLASS_FIELDS_OBJ (obj );
2457+ VALUE fields_obj = RCLASS_WRITABLE_FIELDS_OBJ (obj );
24592458 if (fields_obj ) {
24602459 class_fields_each (fields_obj , func , arg , ivar_only );
24612460 }
@@ -2488,7 +2487,7 @@ rb_ivar_count(VALUE obj)
24882487 case T_CLASS :
24892488 case T_MODULE :
24902489 {
2491- VALUE fields_obj = RCLASS_FIELDS_OBJ (obj );
2490+ VALUE fields_obj = RCLASS_WRITABLE_FIELDS_OBJ (obj );
24922491 if (!fields_obj ) {
24932492 return 0 ;
24942493 }
@@ -4706,7 +4705,7 @@ static int
47064705class_ivar_set (VALUE obj , ID id , VALUE val )
47074706{
47084707 bool existing = true;
4709- const VALUE original_fields_obj = RCLASS_FIELDS_OBJ (obj );
4708+ const VALUE original_fields_obj = RCLASS_WRITABLE_FIELDS_OBJ (obj );
47104709 VALUE fields_obj = original_fields_obj ? original_fields_obj : rb_imemo_class_fields_new (obj , 1 );
47114710
47124711 shape_id_t next_shape_id = 0 ;
@@ -4758,7 +4757,7 @@ class_ivar_set(VALUE obj, ID id, VALUE val)
47584757 }
47594758
47604759 if (fields_obj != original_fields_obj ) {
4761- RCLASS_SET_FIELDS_OBJ (obj , fields_obj );
4760+ RCLASS_WRITABLE_SET_FIELDS_OBJ (obj , fields_obj );
47624761 // TODO: What should we set as the T_CLASS shape_id?
47634762 // In most case we can replicate the single `fields_obj` shape
47644763 // but in namespaced case?
@@ -4777,7 +4776,7 @@ class_ivar_set(VALUE obj, ID id, VALUE val)
47774776
47784777 if (fields_obj != original_fields_obj ) {
47794778 RBASIC_SET_SHAPE_ID (fields_obj , next_shape_id );
4780- RCLASS_SET_FIELDS_OBJ (obj , fields_obj );
4779+ RCLASS_WRITABLE_SET_FIELDS_OBJ (obj , fields_obj );
47814780 // TODO: What should we set as the T_CLASS shape_id?
47824781 // In most case we can replicate the single `fields_obj` shape
47834782 // but in namespaced case?
@@ -4809,7 +4808,7 @@ static void
48094808class_field_set (VALUE obj , shape_id_t target_shape_id , VALUE val )
48104809{
48114810 RUBY_ASSERT (RB_TYPE_P (obj , T_CLASS ) || RB_TYPE_P (obj , T_MODULE ));
4812- obj_field_set (RCLASS_ENSURE_FIELDS_OBJ (obj ), target_shape_id , val );
4811+ obj_field_set (RCLASS_WRITABLE_ENSURE_FIELDS_OBJ (obj ), target_shape_id , val );
48134812}
48144813
48154814static int
0 commit comments