variable.c: refactor accesses to the generic_fields_tbl

All accesses to `generic_fields_tbl_` are now encapsulated inside:

  - `rb_obj_fields`
  - `rb_obj_set_fields`
  - `rb_obj_replace_fields`
This commit is contained in:
Jean Boussier 2025-08-05 13:43:25 +02:00
parent e60e1952a4
commit 92688f7d57
5 changed files with 122 additions and 179 deletions

View file

@ -12,8 +12,14 @@
#include "shape.h"
int rb_ivar_generic_fields_tbl_lookup(VALUE obj, VALUE *);
void rb_copy_complex_ivars(VALUE dest, VALUE obj, shape_id_t src_shape_id, st_table *fields_table);
VALUE rb_obj_fields(VALUE obj, ID field_name);
static inline VALUE
rb_obj_fields_no_ractor_check(VALUE obj)
{
return rb_obj_fields(obj, 0);
}
void rb_free_rb_global_tbl(void);
void rb_free_generic_fields_tbl_(void);