3232#include "darray.h"
3333#include "gc/gc.h"
3434#include "gc/gc_impl.h"
35- #include "shape.h"
3635
3736#ifndef BUILDING_MODULAR_GC
3837# include "probes.h"
@@ -2148,13 +2147,15 @@ rb_gc_impl_source_location_cstr(int *ptr)
21482147#endif
21492148
21502149static inline VALUE
2151- newobj_init (VALUE klass , VALUE flags , shape_id_t shape_id , int wb_protected , rb_objspace_t * objspace , VALUE obj )
2150+ newobj_init (VALUE klass , VALUE flags , int wb_protected , rb_objspace_t * objspace , VALUE obj )
21522151{
21532152 GC_ASSERT (BUILTIN_TYPE (obj ) == T_NONE );
21542153 GC_ASSERT ((flags & FL_WB_PROTECTED ) == 0 );
21552154 RBASIC (obj )-> flags = flags ;
21562155 * ((VALUE * )& RBASIC (obj )-> klass ) = klass ;
2157- RBASIC_SET_SHAPE_ID_NO_CHECKS (obj , shape_id );
2156+ #if RBASIC_SHAPE_ID_FIELD
2157+ RBASIC (obj )-> shape_id = 0 ;
2158+ #endif
21582159
21592160 int t = flags & RUBY_T_MASK ;
21602161 if (t == T_CLASS || t == T_MODULE || t == T_ICLASS ) {
@@ -2438,10 +2439,10 @@ newobj_alloc(rb_objspace_t *objspace, rb_ractor_newobj_cache_t *cache, size_t he
24382439 return obj ;
24392440}
24402441
2441- ALWAYS_INLINE (static VALUE newobj_slowpath (VALUE klass , VALUE flags , shape_id_t shape_id , rb_objspace_t * objspace , rb_ractor_newobj_cache_t * cache , int wb_protected , size_t heap_idx ));
2442+ ALWAYS_INLINE (static VALUE newobj_slowpath (VALUE klass , VALUE flags , rb_objspace_t * objspace , rb_ractor_newobj_cache_t * cache , int wb_protected , size_t heap_idx ));
24422443
24432444static inline VALUE
2444- newobj_slowpath (VALUE klass , VALUE flags , shape_id_t shape_id , rb_objspace_t * objspace , rb_ractor_newobj_cache_t * cache , int wb_protected , size_t heap_idx )
2445+ newobj_slowpath (VALUE klass , VALUE flags , rb_objspace_t * objspace , rb_ractor_newobj_cache_t * cache , int wb_protected , size_t heap_idx )
24452446{
24462447 VALUE obj ;
24472448 unsigned int lev ;
@@ -2466,32 +2467,32 @@ newobj_slowpath(VALUE klass, VALUE flags, shape_id_t shape_id, rb_objspace_t *ob
24662467 }
24672468
24682469 obj = newobj_alloc (objspace , cache , heap_idx , true);
2469- newobj_init (klass , flags , shape_id , wb_protected , objspace , obj );
2470+ newobj_init (klass , flags , wb_protected , objspace , obj );
24702471 }
24712472 RB_GC_CR_UNLOCK (lev );
24722473
24732474 return obj ;
24742475}
24752476
2476- NOINLINE (static VALUE newobj_slowpath_wb_protected (VALUE klass , VALUE flags , shape_id_t shape_id ,
2477+ NOINLINE (static VALUE newobj_slowpath_wb_protected (VALUE klass , VALUE flags ,
24772478 rb_objspace_t * objspace , rb_ractor_newobj_cache_t * cache , size_t heap_idx ));
2478- NOINLINE (static VALUE newobj_slowpath_wb_unprotected (VALUE klass , VALUE flags , shape_id_t shape_id ,
2479+ NOINLINE (static VALUE newobj_slowpath_wb_unprotected (VALUE klass , VALUE flags ,
24792480 rb_objspace_t * objspace , rb_ractor_newobj_cache_t * cache , size_t heap_idx ));
24802481
24812482static VALUE
2482- newobj_slowpath_wb_protected (VALUE klass , VALUE flags , shape_id_t shape_id , rb_objspace_t * objspace , rb_ractor_newobj_cache_t * cache , size_t heap_idx )
2483+ newobj_slowpath_wb_protected (VALUE klass , VALUE flags , rb_objspace_t * objspace , rb_ractor_newobj_cache_t * cache , size_t heap_idx )
24832484{
2484- return newobj_slowpath (klass , flags , shape_id , objspace , cache , TRUE, heap_idx );
2485+ return newobj_slowpath (klass , flags , objspace , cache , TRUE, heap_idx );
24852486}
24862487
24872488static VALUE
2488- newobj_slowpath_wb_unprotected (VALUE klass , VALUE flags , shape_id_t shape_id , rb_objspace_t * objspace , rb_ractor_newobj_cache_t * cache , size_t heap_idx )
2489+ newobj_slowpath_wb_unprotected (VALUE klass , VALUE flags , rb_objspace_t * objspace , rb_ractor_newobj_cache_t * cache , size_t heap_idx )
24892490{
2490- return newobj_slowpath (klass , flags , shape_id , objspace , cache , FALSE, heap_idx );
2491+ return newobj_slowpath (klass , flags , objspace , cache , FALSE, heap_idx );
24912492}
24922493
24932494VALUE
2494- rb_gc_impl_new_obj (void * objspace_ptr , void * cache_ptr , VALUE klass , VALUE flags , shape_id_t shape_id , bool wb_protected , size_t alloc_size )
2495+ rb_gc_impl_new_obj (void * objspace_ptr , void * cache_ptr , VALUE klass , VALUE flags , bool wb_protected , size_t alloc_size )
24952496{
24962497 VALUE obj ;
24972498 rb_objspace_t * objspace = objspace_ptr ;
@@ -2512,14 +2513,14 @@ rb_gc_impl_new_obj(void *objspace_ptr, void *cache_ptr, VALUE klass, VALUE flags
25122513 if (!RB_UNLIKELY (during_gc || ruby_gc_stressful ) &&
25132514 wb_protected ) {
25142515 obj = newobj_alloc (objspace , cache , heap_idx , false);
2515- newobj_init (klass , flags , shape_id , wb_protected , objspace , obj );
2516+ newobj_init (klass , flags , wb_protected , objspace , obj );
25162517 }
25172518 else {
25182519 RB_DEBUG_COUNTER_INC (obj_newobj_slowpath );
25192520
25202521 obj = wb_protected ?
2521- newobj_slowpath_wb_protected (klass , flags , shape_id , objspace , cache , heap_idx ) :
2522- newobj_slowpath_wb_unprotected (klass , flags , shape_id , objspace , cache , heap_idx );
2522+ newobj_slowpath_wb_protected (klass , flags , objspace , cache , heap_idx ) :
2523+ newobj_slowpath_wb_unprotected (klass , flags , objspace , cache , heap_idx );
25232524 }
25242525
25252526 return obj ;
0 commit comments