Eliminate some rb_shape_t * usages outside of shape.c.

This commit is contained in:
Jean Boussier 2025-05-08 21:15:36 +02:00
parent a970d35de2
commit becc45ff4e
Notes: git 2025-05-09 08:23:06 +00:00

10
gc.c
View File

@ -3002,8 +3002,6 @@ rb_gc_mark_children(void *objspace, VALUE obj)
} }
case T_OBJECT: { case T_OBJECT: {
rb_shape_t *shape = RSHAPE(ROBJECT_SHAPE_ID(obj));
if (rb_shape_obj_too_complex_p(obj)) { if (rb_shape_obj_too_complex_p(obj)) {
gc_mark_tbl_no_pin(ROBJECT_FIELDS_HASH(obj)); gc_mark_tbl_no_pin(ROBJECT_FIELDS_HASH(obj));
} }
@ -3016,13 +3014,13 @@ rb_gc_mark_children(void *objspace, VALUE obj)
} }
} }
if (shape) { attr_index_t fields_count = ROBJECT_FIELDS_COUNT(obj);
if (fields_count) {
VALUE klass = RBASIC_CLASS(obj); VALUE klass = RBASIC_CLASS(obj);
// Increment max_iv_count if applicable, used to determine size pool allocation // Increment max_iv_count if applicable, used to determine size pool allocation
attr_index_t num_of_ivs = shape->next_field_index; if (RCLASS_EXT(klass)->max_iv_count < fields_count) {
if (RCLASS_EXT(klass)->max_iv_count < num_of_ivs) { RCLASS_EXT(klass)->max_iv_count = fields_count;
RCLASS_EXT(klass)->max_iv_count = num_of_ivs;
} }
} }