Ruby  3.4.0dev (2024-11-05 revision 348a53415339076afc4a02fcd09f3ae36e9c4c61)
variable.h (348a53415339076afc4a02fcd09f3ae36e9c4c61)
1 #ifndef RUBY_TOPLEVEL_VARIABLE_H /*-*-C-*-vi:se ft=c:*/
2 #define RUBY_TOPLEVEL_VARIABLE_H
11 /* per-object */
12 
13 #include "shape.h"
14 
15 struct gen_ivtbl {
16 #if !SHAPE_IN_BASIC_FLAGS
17  uint16_t shape_id;
18 #endif
19  union {
20  struct {
21  uint32_t numiv;
22  VALUE ivptr[1];
23  } shape;
24  struct {
25  st_table *table;
26  } complex;
27  } as;
28 };
29 
30 int rb_ivar_generic_ivtbl_lookup(VALUE obj, struct gen_ivtbl **);
31 
32 #if !SHAPE_IN_BASIC_FLAGS
33 shape_id_t rb_generic_shape_id(VALUE obj);
34 #endif
35 
36 void rb_free_rb_global_tbl(void);
37 void rb_free_generic_iv_tbl_(void);
38 
39 #endif /* RUBY_TOPLEVEL_VARIABLE_H */
Definition: st.h:79
uintptr_t VALUE
Type that represents a Ruby object.
Definition: value.h:40