More...
Go to the source code of this file.
|
#define | mrb_class_ptr(v) ((struct RClass*)(mrb_ptr(v))) |
|
#define | MRB_FL_CLASS_IS_PREPENDED (1 << 19) |
|
#define | MRB_FL_CLASS_IS_ORIGIN (1 << 18) |
|
#define | MRB_CLASS_ORIGIN(c) |
|
#define | MRB_FL_CLASS_IS_INHERITED (1 << 17) |
|
#define | MRB_INSTANCE_TT_MASK (0x1F) |
|
#define | MRB_SET_INSTANCE_TT(c, tt) ((c)->flags = (((c)->flags & ~MRB_INSTANCE_TT_MASK) | (char)(tt))) |
|
#define | MRB_INSTANCE_TT(c) (enum mrb_vtype)((c)->flags & MRB_INSTANCE_TT_MASK) |
|
#define | MRB_FL_UNDEF_ALLOCATE (1 << 6) |
|
#define | MRB_UNDEF_ALLOCATOR(c) (mrb_assert((c)->tt == MRB_TT_CLASS), (c)->flags |= MRB_FL_UNDEF_ALLOCATE) |
|
#define | MRB_UNDEF_ALLOCATOR_P(c) ((c)->flags & MRB_FL_UNDEF_ALLOCATE) |
|
#define | MRB_DEFINE_ALLOCATOR(c) ((c)->flags &= ~MRB_FL_UNDEF_ALLOCATE) |
|
|
static 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) |
|
void | mrb_mc_clear_by_class (mrb_state *mrb, struct RClass *c) |
|
void | mrb_mt_foreach (mrb_state *, struct RClass *, mrb_mt_foreach_func *, void *) |
|
See Copyright Notice in mruby.h
◆ MRB_CLASS_ORIGIN
#define MRB_CLASS_ORIGIN |
( |
|
c | ) |
|
Value: do {\
if ((c)->flags & MRB_FL_CLASS_IS_PREPENDED) {\
(c) = (c)->super;\
while (!((c)->flags & MRB_FL_CLASS_IS_ORIGIN)) {\
(c) = (c)->super;\
}\
}\
} while (0)