Ruby 3.2.2p53 (2023-03-30 revision e51014f9c05aa65cbf203442d37fef7c12390015)
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]

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 files: