Ruby 3.2.1p31 (2023-02-08 revision 31819e82c88c6f8ecfaeb162519bfa26a14b21fd)
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.
 
union {
   struct {
      VALUE *   ivptr
 
      struct rb_id_table *   iv_index_tbl
 
   }   heap
 
   VALUE   ary [1]
 
as
 

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[1]

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 { ... } 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 { ... } 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 files: