1#ifndef INTERNAL_VARIABLE_H
2#define INTERNAL_VARIABLE_H
11#include "ruby/internal/config.h"
19void rb_gc_mark_global_tbl(
void);
20void rb_gc_update_global_tbl(
void);
29void rb_gvar_ractor_local(
const char *name);
30void rb_gvar_box_ready(
const char *name);
31void rb_gvar_box_dynamic(
const char *name);
49void rb_obj_replace_fields(
VALUE obj,
VALUE fields_obj);
51VALUE rb_obj_field_get(
VALUE obj, shape_id_t target_shape_id);
53void rb_ivar_foreach_buffered(
VALUE obj,
int (*func)(
ID name,
VALUE val, st_data_t arg), st_data_t arg);
54attr_index_t rb_ivar_set_index(
VALUE obj,
ID id,
VALUE val);
55attr_index_t rb_obj_field_set(
VALUE obj, shape_id_t target_shape_id,
ID field_name,
VALUE val);
56VALUE rb_ivar_get_at(
VALUE obj, attr_index_t index,
ID id);
57VALUE rb_ivar_get_at_no_ractor_check(
VALUE obj, attr_index_t index);
58void rb_generic_fields_lock_atfork(
void);
59void rb_imemo_fields_record_shrefs(
VALUE fields_obj);
63void rb_generic_fields_tables_foreach(
void (*cb)(
struct st_table *tbl,
void *arg),
void *arg);
64void rb_generic_fields_shared_table_foreach(
void (*cb)(
struct st_table *tbl,
void *arg),
void *arg);
66RUBY_SYMBOL_EXPORT_BEGIN
68void rb_mark_generic_ivar(
VALUE obj);
void rb_gvar_setter_t(VALUE val, ID id, VALUE *data)
Type that represents a global variable setter function.
rb_gvar_setter_t rb_gvar_readonly_setter
This function just raises rb_eNameError.
VALUE rb_gvar_getter_t(ID id, VALUE *data)
Type that represents a global variable getter function.
#define _(args)
This was a transition path from K&R to ANSI.
uintptr_t ID
Type that represents a Ruby identifier such as a variable name.
uintptr_t VALUE
Type that represents a Ruby object.