Ruby: RObject Struct Reference

Ruby 3.2.5p208 (2024-07-26 revision 31d0f1a2e7dbfb60731d1f05b868e1d578cda493)

Data Fields
RObject Struct Reference

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.

## Detailed Description

Ruby's ordinal objects.

Unless otherwise special cased, all predefined and user-defined classes share this struct to hold their instances.

Definition at line 94 of file robject.h.

## Field Documentation

## ◆ ary

VALUE RObject::ary[ROBJECT_EMBED_LEN_MAX]

Embedded instance variables.

When an object is small enough, it uses this area to store the instance variables.

Definition at line 136 of file robject.h.

## ◆ [union]

union { ... } RObject::as

Object's specific fields.

## ◆ basic

struct RBasic RObject::basic

Basic part, including flags and class.

Definition at line 97 of file robject.h.

## ◆ [struct]

struct { ... } RObject::heap

Object that use separated memory region for instance variables use this pattern.

## ◆ iv_index_tbl

struct rb_id_table* RObject::iv_index_tbl

This is a table that holds instance variable name to index mapping.

Used when accessing instance variables using names.

Definition at line 118 of file robject.h.

## ◆ ivptr

VALUE* RObject::ivptr

Pointer to a C array that holds instance variables.

Definition at line 108 of file robject.h.

The documentation for this struct was generated from the following file:

- include/ruby/internal/core/robject.h