newobj_of(): Use parameter instead of GET_RACTOR()

No point repeating the work callers to this function already do.
This commit is contained in:
Alan Wu 2024-07-22 19:13:18 -04:00
parent 959c95a01e
commit 5617fec1f8
Notes: git 2024-07-23 00:01:17 +00:00

6
gc.c
View File

@ -888,17 +888,17 @@ rb_gc_obj_slot_size(VALUE obj)
static inline VALUE
newobj_of(rb_ractor_t *cr, VALUE klass, VALUE flags, VALUE v1, VALUE v2, VALUE v3, bool wb_protected, size_t size)
{
VALUE obj = rb_gc_impl_new_obj(rb_gc_get_objspace(), GET_RACTOR()->newobj_cache, klass, flags, v1, v2, v3, wb_protected, size);
VALUE obj = rb_gc_impl_new_obj(rb_gc_get_objspace(), cr->newobj_cache, klass, flags, v1, v2, v3, wb_protected, size);
if (UNLIKELY(ruby_vm_event_flags & RUBY_INTERNAL_EVENT_NEWOBJ)) {
unsigned int lev;
RB_VM_LOCK_ENTER_CR_LEV(GET_RACTOR(), &lev);
RB_VM_LOCK_ENTER_CR_LEV(cr, &lev);
{
memset((char *)obj + RVALUE_SIZE, 0, rb_gc_obj_slot_size(obj) - RVALUE_SIZE);
rb_gc_event_hook(obj, RUBY_INTERNAL_EVENT_NEWOBJ);
}
RB_VM_LOCK_LEAVE_CR_LEV(GET_RACTOR(), &lev);
RB_VM_LOCK_LEAVE_CR_LEV(cr, &lev);
}
return obj;