Ruby  3.1.4p223 (2023-03-30 revision HEAD)
Data Fields
RObject Struct Reference

Ruby's ordinal objects. More...

#include <robject.h>

Data Fields

struct RBasic basic
 Basic part, including flags and class. More...
 
union {
   struct {
      uint32_t   numiv
 Number of instance variables. More...
 
      VALUE *   ivptr
 Pointer to a C array that holds instance variables. More...
 
      struct st_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. More...
 

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 93 of file robject.h.

Field Documentation

◆ ary

Embedded instance variables.

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

Definition at line 131 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 171 of file robject.h.

◆ 

struct { ... } RObject::heap

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

◆ iv_index_tbl

struct st_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 124 of file robject.h.

◆ ivptr

VALUE* RObject::ivptr

Pointer to a C array that holds instance variables.

Definition at line 114 of file robject.h.

◆ numiv

uint32_t RObject::numiv

Number of instance variables.

This is per object; objects might differ in this field even if they have the identical classes.

Definition at line 111 of file robject.h.


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