Header: mruby/class.h

Overview

Class class

Function Summary collapse

Define Summary

#define MRUBY_CLASS_H
#define mrb_class_ptr
#define MRB_FL_CLASS_IS_PREPENDED

flags:

20:   frozen
19:   is_prepended
18:   is_origin
17:   is_inherited (used by method cache)
7-16: unused
6:    prohibit Class#allocate
0-5:  instance type
#define MRB_FL_CLASS_IS_ORIGIN
#define MRB_CLASS_ORIGIN
#define MRB_FL_CLASS_IS_INHERITED
#define MRB_INSTANCE_TT_MASK
#define MRB_SET_INSTANCE_TT
#define MRB_INSTANCE_TT
#define MRB_FL_UNDEF_ALLOCATE
#define MRB_UNDEF_ALLOCATOR
#define MRB_UNDEF_ALLOCATOR_P
#define MRB_DEFINE_ALLOCATOR
#define mrb_mc_clear_by_class
#define MRB_MT_READONLY_BIT
#define MRB_MT_FROZEN_BIT
#define MRB_MT_FUNC
#define MRB_MT_PUBLIC
#define MRB_MT_PRIVATE
#define MRB_MT_ENTRY

ROM table entry: 3rd param is MRB_ARGS_*() optionally OR'd with MRB_MT_PRIVATE.

#define MRB_MT_ASPEC
#define MRB_MT_REMOVED_P

"removed" tombstone: MRB_MT_FUNC flag set with NULL function pointer. This combination never occurs naturally (C functions are never NULL). Unlike undef (proc=NULL without MRB_MT_FUNC), a removed marker makes mt_get() return 0 ("not found"), blocking ROM chain walk while allowing superclass lookup.

#define MRB_MT_INIT_ROM

Function Details

struct RClass* mrb_class(mrb_state * mrb, mrb_value v)

void mrb_define_method_raw(mrb_state* , struct RClass* , mrb_sym , mrb_method_t )

void mrb_alias_method(mrb_state* , struct RClass * c, mrb_sym a, mrb_sym b)

void mrb_remove_method(mrb_state * mrb, struct RClass * c, mrb_sym sym)

mrb_method_t mrb_method_search_vm(mrb_state* , struct RClass* , mrb_sym )

mrb_method_t mrb_method_search(mrb_state* , struct RClass* , mrb_sym )

struct RClass* mrb_class_real(struct RClass* cl)

struct RClass* mrb_class_outer(mrb_state * mrb, struct RClass * c)

void mrb_mt_foreach(mrb_state* , struct RClass* , mrb_mt_foreach_func* , void* )