Ruby 3.2.1p31 (2023-02-08 revision 31819e82c88c6f8ecfaeb162519bfa26a14b21fd)
|
Ruby's ordinal objects. More...
#include <robject.h>
Data Fields | |
struct RBasic | basic |
Basic part, including flags and class. | |
union { | |
struct { | |
VALUE * ivptr | |
Pointer to a C array that holds instance variables. More... | |
struct rb_id_table * iv_index_tbl | |
This is a table that holds instance variable name to index mapping. More... | |
} heap | |
Object that use separated memory region for instance variables use this pattern. More... | |
VALUE ary [ROBJECT_EMBED_LEN_MAX] | |
Embedded instance variables. More... | |
} | as |
Object's specific fields. | |
union { | |
struct { | |
VALUE * ivptr | |
struct rb_id_table * iv_index_tbl | |
} heap | |
VALUE ary [1] | |
} | as |
Ruby's ordinal objects.
Unless otherwise special cased, all predefined and user-defined classes share this struct to hold their instances.
VALUE RObject::ary[1] |
union { ... } RObject::as |
Object's specific fields.
struct RBasic RObject::basic |
struct { ... } RObject::heap |
Object that use separated memory region for instance variables use this pattern.
struct rb_id_table* RObject::iv_index_tbl |
VALUE* RObject::ivptr |