Ruby 3.0.5p211 (2022-11-24 revision ba5cf0f7c52d4d35cc6a173c89eda98ceffa2dcf)
Data Structures | Macros | Enumerations | Functions | Variables
struct.c File Reference
#include "id.h"
#include "internal.h"
#include "internal/class.h"
#include "internal/error.h"
#include "internal/hash.h"
#include "internal/object.h"
#include "internal/proc.h"
#include "internal/struct.h"
#include "internal/symbol.h"
#include "transient_heap.h"
#include "vm_core.h"
#include "builtin.h"

Go to the source code of this file.

Data Structures

struct  struct_hash_set_arg
 

Macros

#define N_REF_FUNC   numberof(ref_func)
 

Enumerations

enum  { AREF_HASH_UNIT = 5 , AREF_HASH_THRESHOLD = 10 }
 

Functions

const rb_iseq_trb_method_for_self_aref (VALUE name, VALUE arg, const struct rb_builtin_function *func)
 
const rb_iseq_trb_method_for_self_aset (VALUE name, VALUE arg, const struct rb_builtin_function *func)
 
VALUE rb_struct_s_keyword_init (VALUE klass)
 
VALUE rb_struct_s_members (VALUE klass)
 
VALUE rb_struct_members (VALUE s)
 
VALUE rb_struct_getmember (VALUE obj, ID id)
 
VALUE rb_struct_alloc_noinit (VALUE klass)
 
VALUE rb_struct_define_without_accessor_under (VALUE outer, const char *class_name, VALUE super, rb_alloc_func_t alloc,...)
 
VALUE rb_struct_define_without_accessor (const char *class_name, VALUE super, rb_alloc_func_t alloc,...)
 
VALUE rb_struct_define (const char *name,...)
 
VALUE rb_struct_define_under (VALUE outer, const char *name,...)
 
VALUE rb_struct_initialize (VALUE self, VALUE values)
 
VALUE rb_struct_alloc (VALUE klass, VALUE values)
 
VALUE rb_struct_new (VALUE klass,...)
 
VALUE rb_struct_init_copy (VALUE copy, VALUE s)
 
VALUE rb_struct_aref (VALUE s, VALUE idx)
 
VALUE rb_struct_aset (VALUE s, VALUE idx, VALUE val)
 
 FUNC_MINIMIZED (VALUE rb_struct_lookup(VALUE s, VALUE idx))
 
VALUE rb_struct_lookup (VALUE s, VALUE idx)
 
VALUE rb_struct_size (VALUE s)
 
void InitVM_Struct (void)
 
void Init_Struct (void)
 

Variables

VALUE rb_cStruct
 

Macro Definition Documentation

◆ N_REF_FUNC

#define N_REF_FUNC   numberof(ref_func)

Definition at line 242 of file struct.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
AREF_HASH_UNIT 
AREF_HASH_THRESHOLD 

Definition at line 26 of file struct.c.

Function Documentation

◆ FUNC_MINIMIZED()

FUNC_MINIMIZED ( VALUE   rb_struct_lookupVALUE s, VALUE idx)

◆ Init_Struct()

void Init_Struct ( void  )

Definition at line 1428 of file struct.c.

References InitVM, and rb_intern().

◆ InitVM_Struct()

void InitVM_Struct ( void  )

◆ rb_method_for_self_aref()

const rb_iseq_t * rb_method_for_self_aref ( VALUE  name,
VALUE  arg,
const struct rb_builtin_function func 
)

Definition at line 9891 of file compile.c.

References name.

◆ rb_method_for_self_aset()

const rb_iseq_t * rb_method_for_self_aset ( VALUE  name,
VALUE  arg,
const struct rb_builtin_function func 
)

Definition at line 9900 of file compile.c.

References name.

◆ rb_struct_alloc()

VALUE rb_struct_alloc ( VALUE  klass,
VALUE  values 
)

Definition at line 760 of file struct.c.

References RARRAY_CONST_PTR, and rb_class_new_instance().

◆ rb_struct_alloc_noinit()

VALUE rb_struct_alloc_noinit ( VALUE  klass)

Definition at line 381 of file struct.c.

◆ rb_struct_aref()

VALUE rb_struct_aref ( VALUE  s,
VALUE  idx 
)

Definition at line 1096 of file struct.c.

References RSTRUCT_GET.

Referenced by InitVM_Struct().

◆ rb_struct_aset()

VALUE rb_struct_aset ( VALUE  s,
VALUE  idx,
VALUE  val 
)

Definition at line 1123 of file struct.c.

References RSTRUCT_SET.

Referenced by InitVM_Struct().

◆ rb_struct_define()

VALUE rb_struct_define ( const char *  name,
  ... 
)

Definition at line 464 of file struct.c.

References name, rb_cStruct, and rb_str_new2.

◆ rb_struct_define_under()

VALUE rb_struct_define_under ( VALUE  outer,
const char *  name,
  ... 
)

Definition at line 479 of file struct.c.

References name, rb_cStruct, and rb_define_class_under().

Referenced by Init_etc(), and InitVM_process().

◆ rb_struct_define_without_accessor()

VALUE rb_struct_define_without_accessor ( const char *  class_name,
VALUE  super,
rb_alloc_func_t  alloc,
  ... 
)

Definition at line 451 of file struct.c.

Referenced by Init_Range().

◆ rb_struct_define_without_accessor_under()

VALUE rb_struct_define_without_accessor_under ( VALUE  outer,
const char *  class_name,
VALUE  super,
rb_alloc_func_t  alloc,
  ... 
)

Definition at line 438 of file struct.c.

◆ rb_struct_getmember()

VALUE rb_struct_getmember ( VALUE  obj,
ID  id 
)

Definition at line 219 of file struct.c.

References ID2SYM, Qnil, RSTRUCT_GET, and UNREACHABLE_RETURN.

◆ rb_struct_init_copy()

VALUE rb_struct_init_copy ( VALUE  copy,
VALUE  s 
)

Definition at line 1010 of file struct.c.

References len, OBJ_INIT_COPY, rb_eTypeError, rb_raise(), RSTRUCT_GET, RSTRUCT_LEN, and RSTRUCT_SET.

Referenced by InitVM_Struct().

◆ rb_struct_initialize()

VALUE rb_struct_initialize ( VALUE  self,
VALUE  values 
)

Definition at line 693 of file struct.c.

References Qnil, RARRAY_CONST_PTR, RB_GC_GUARD, and struct_hash_set_arg::self.

◆ rb_struct_lookup()

VALUE rb_struct_lookup ( VALUE  s,
VALUE  idx 
)

Definition at line 1136 of file struct.c.

References Qnil.

Referenced by rb_obj_dig().

◆ rb_struct_members()

VALUE rb_struct_members ( VALUE  s)

◆ rb_struct_new()

VALUE rb_struct_new ( VALUE  klass,
  ... 
)

Definition at line 766 of file struct.c.

References N_REF_FUNC, numberof, rb_ary_tmp_new(), rb_class_new_instance(), and rb_long2int.

◆ rb_struct_s_keyword_init()

VALUE rb_struct_s_keyword_init ( VALUE  klass)

Definition at line 60 of file struct.c.

◆ rb_struct_s_members()

VALUE rb_struct_s_members ( VALUE  klass)

Definition at line 66 of file struct.c.

References NIL_P, rb_eTypeError, rb_raise(), and T_ARRAY.

Referenced by rb_struct_members().

◆ rb_struct_size()

VALUE rb_struct_size ( VALUE  s)

Definition at line 1326 of file struct.c.

References LONG2FIX, and RSTRUCT_LEN.

Referenced by InitVM_Struct().

Variable Documentation

◆ rb_cStruct

VALUE rb_cStruct

Definition at line 34 of file struct.c.

Referenced by Init_etc(), InitVM_Struct(), rb_struct_define(), and rb_struct_define_under().