proc.h: unify method flag layout; eliminate aspec shifting

Move MRB_METHOD_FUNC_FL to bit 24 and visibility flags to
bits 25-26 so that MRB_ARGS_*() values (bits 0-23) can be
stored directly without shifting. This makes MRB_MT_PRIVATE
and MRB_METHOD_PRIVATE_FL the same value, eliminating the
dual-constant confusion and simplifying the MRB_MT_ENTRY()
macro to a single OR operation.

Co-authored-by: Claude <noreply@anthropic.com>
This commit is contained in:
Yukihiro "Matz" Matsumoto
2026-02-20 13:49:17 +09:00
parent ada229d2b0
commit 4a097525df
17 changed files with 107 additions and 112 deletions
+21 -20
View File
@@ -132,16 +132,13 @@ typedef struct mrb_mt_tbl {
### Macros
```c
/* ROM table entry: stores aspec in bits 4+, auto-sets MRB_MT_FUNC */
#define MRB_MT_ENTRY(fn, sym, aspec) \
{ { .func = (fn) }, (sym), ((aspec) << 4) | MRB_MT_FUNC }
/* ROM table entry for private methods */
#define MRB_MT_ENTRY_PRIVATE(fn, sym, aspec) \
{ { .func = (fn) }, (sym), ((aspec) << 4) | MRB_MT_FUNC | MRB_MT_PRIVATE }
/* ROM table entry: 3rd param is MRB_ARGS_*() optionally OR'd with
MRB_MT_PRIVATE. The macro OR's in MRB_MT_FUNC automatically. */
#define MRB_MT_ENTRY(fn, sym, flags) \
{ { .func = (fn) }, (sym), (flags) | MRB_MT_FUNC }
/* Extract aspec from combined flags */
#define MRB_MT_ASPEC(flags) ((mrb_aspec)((flags) >> 4))
#define MRB_MT_ASPEC(flags) ((mrb_aspec)((flags) & 0xffffff))
/* ROM table initializer (auto-computes size from entries array) */
#define MRB_MT_ROM_TAB(entries) { \
@@ -150,23 +147,26 @@ typedef struct mrb_mt_tbl {
(mrb_mt_entry*)(entries), NULL }
```
### Flags (bits 0-3 of uint32_t)
### Flags
| Flag | Value | Description |
| ---------------- | ----- | ------------------------------- |
| `MRB_MT_FUNC` | 8 | C function (auto-set by macros) |
| `MRB_MT_PUBLIC` | 0 | Public visibility (default) |
| `MRB_MT_PRIVATE` | 1 | Private visibility |
| Flag | Value | Description |
| ---------------- | -------- | ----------------------------------- |
| `MRB_MT_FUNC` | (1<<24) | C function (auto-set by macro) |
| `MRB_MT_PUBLIC` | 0 | Public visibility (default) |
| `MRB_MT_PRIVATE` | (1<<25) | Private visibility (in entry param) |
Bits 4-27 store the `mrb_aspec` argument specification (shifted left
by 4). `MRB_MT_FUNC` is set automatically by the macros. The no-arg
optimization is derived at runtime from `aspec == 0`
(`MRB_ARGS_NONE()`).
The third parameter to `MRB_MT_ENTRY()` is an `MRB_ARGS_*()`
expression optionally OR'd with `MRB_MT_PRIVATE`. The aspec value
occupies bits 0-23 and the visibility flag occupies bit 25; these
ranges do not overlap, so the values are simply OR'd together.
`MRB_MT_FUNC` is set automatically. The no-arg optimization is
derived at runtime from `aspec == 0` (`MRB_ARGS_NONE()`).
**How to write entries:**
- **`MRB_MT_ENTRY(fn, sym, MRB_ARGS_*(...))`**: Public method.
- **`MRB_MT_ENTRY_PRIVATE(fn, sym, MRB_ARGS_*(...))`**: Private method.
- **`MRB_MT_ENTRY(fn, sym, MRB_ARGS_*(...) | MRB_MT_PRIVATE)`**:
Private method.
- Use the same `MRB_ARGS_*()` macros as `mrb_define_method_id()`.
### Symbol Macros
@@ -371,7 +371,8 @@ To convert existing `mrb_define_method_id()` calls to a ROM table:
- `func` is the function pointer
- `sym` is the symbol macro (e.g., `MRB_SYM(name)`)
- `aspec` is the original `MRB_ARGS_*()` macro
- Use `MRB_MT_ENTRY_PRIVATE()` for private methods
- For private methods, OR `MRB_MT_PRIVATE` into the aspec:
`MRB_MT_ENTRY(func, sym, aspec | MRB_MT_PRIVATE)`
4. **Create** the table with `MRB_MT_ROM_TAB(entries)`.
+7 -9
View File
@@ -50,16 +50,14 @@ typedef struct mrb_mt_tbl {
#define MRB_MT_READONLY_BIT (1 << 30)
#define MRB_MT_FROZEN_BIT (1 << 29)
#define MRB_MT_FUNC 8 /* MRB_METHOD_FUNC_FL */
#define MRB_MT_PUBLIC 0 /* MRB_METHOD_PUBLIC_FL */
#define MRB_MT_PRIVATE 1 /* MRB_METHOD_PRIVATE_FL */
#define MRB_MT_FUNC (1 << 24) /* MRB_METHOD_FUNC_FL */
#define MRB_MT_PUBLIC 0
#define MRB_MT_PRIVATE (1 << 25) /* MRB_METHOD_PRIVATE_FL */
/* ROM table entry: stores aspec in bits 4+, auto-sets MRB_MT_FUNC */
#define MRB_MT_ENTRY(fn, sym, aspec) \
{ { .func = (fn) }, (sym), ((aspec) << 4) | MRB_MT_FUNC }
#define MRB_MT_ENTRY_PRIVATE(fn, sym, aspec) \
{ { .func = (fn) }, (sym), ((aspec) << 4) | MRB_MT_FUNC | MRB_MT_PRIVATE }
#define MRB_MT_ASPEC(flags) ((mrb_aspec)((flags) >> 4))
/* ROM table entry: 3rd param is MRB_ARGS_*() optionally OR'd with MRB_MT_PRIVATE. */
#define MRB_MT_ENTRY(fn, sym, flags) \
{ { .func = (fn) }, (sym), (flags) | MRB_MT_FUNC }
#define MRB_MT_ASPEC(flags) ((mrb_aspec)((flags) & 0xffffff))
/* ROM table initializer from const entries array (auto-computes size).
Casts away const because mrb_mt_tbl.ptr is shared with mutable layers;
+7 -7
View File
@@ -114,15 +114,15 @@ MRB_API mrb_value mrb_proc_cfunc_env_get(mrb_state *mrb, mrb_int idx);
/* old name */
#define mrb_cfunc_env_get(mrb, idx) mrb_proc_cfunc_env_get(mrb, idx)
#define MRB_METHOD_FUNC_FL 8
#define MRB_METHOD_PUBLIC_FL 0
#define MRB_METHOD_PRIVATE_FL 1
#define MRB_METHOD_PROTECTED_FL 2
#define MRB_METHOD_VDEFAULT_FL 3
#define MRB_METHOD_VISIBILITY_MASK 3
#define MRB_METHOD_FUNC_FL (1 << 24)
#define MRB_METHOD_PUBLIC_FL 0
#define MRB_METHOD_PRIVATE_FL (1 << 25)
#define MRB_METHOD_PROTECTED_FL (1 << 26)
#define MRB_METHOD_VDEFAULT_FL ((1 << 25) | (1 << 26))
#define MRB_METHOD_VISIBILITY_MASK ((1 << 25) | (1 << 26))
#define MRB_METHOD_FUNC_P(m) ((m).flags&MRB_METHOD_FUNC_FL)
#define MRB_METHOD_NOARG_P(m) ((m).flags>>4==0)
#define MRB_METHOD_NOARG_P(m) (((m).flags&0xffffff)==0)
#define MRB_METHOD_FUNC(m) ((m).as.func)
#define MRB_METHOD_FROM_FUNC(m,fn) do{(m).flags=MRB_METHOD_FUNC_FL;(m).as.func=(fn);}while(0)
#define MRB_METHOD_FROM_PROC(m,pr) do{(m).flags=0;(m).as.proc=(pr);}while(0)
+1 -1
View File
@@ -2199,7 +2199,7 @@ io_flush(mrb_state *mrb, mrb_value io)
/* ---------------------------*/
static const mrb_mt_entry io_rom_entries[] = {
MRB_MT_ENTRY(io_init, MRB_SYM(initialize), MRB_ARGS_ARG(1,2)),
MRB_MT_ENTRY_PRIVATE(io_init_copy, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY(io_init_copy, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(io_isatty, MRB_SYM(isatty), MRB_ARGS_NONE()),
MRB_MT_ENTRY(io_eof, MRB_SYM_Q(eof), MRB_ARGS_NONE()), /* 15.2.20.5.6 */
MRB_MT_ENTRY(io_getc, MRB_SYM(getc), MRB_ARGS_NONE()), /* 15.2.20.5.8 */
+9 -9
View File
@@ -289,17 +289,17 @@ mrb_f_hash(mrb_state *mrb, mrb_value self)
}
static const mrb_mt_entry kernel_ext_rom_entries[] = {
MRB_MT_ENTRY_PRIVATE(mrb_f_raise, MRB_SYM(fail), MRB_ARGS_OPT(2)),
MRB_MT_ENTRY_PRIVATE(mrb_f_caller, MRB_SYM(caller), MRB_ARGS_OPT(2)),
MRB_MT_ENTRY_PRIVATE(mrb_f_method, MRB_SYM(__method__), MRB_ARGS_NONE()),
MRB_MT_ENTRY_PRIVATE(mrb_f_callee, MRB_SYM(__callee__), MRB_ARGS_NONE()),
MRB_MT_ENTRY_PRIVATE(mrb_f_integer, MRB_SYM(Integer), MRB_ARGS_ARG(1,1)),
MRB_MT_ENTRY_PRIVATE(mrb_f_string, MRB_SYM(String), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY_PRIVATE(mrb_f_array, MRB_SYM(Array), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY(mrb_f_raise, MRB_SYM(fail), MRB_ARGS_OPT(2) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_f_caller, MRB_SYM(caller), MRB_ARGS_OPT(2) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_f_method, MRB_SYM(__method__), MRB_ARGS_NONE() | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_f_callee, MRB_SYM(__callee__), MRB_ARGS_NONE() | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_f_integer, MRB_SYM(Integer), MRB_ARGS_ARG(1,1) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_f_string, MRB_SYM(String), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_f_array, MRB_SYM(Array), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE),
#ifndef MRB_NO_FLOAT
MRB_MT_ENTRY_PRIVATE(mrb_f_float, MRB_SYM(Float), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY(mrb_f_float, MRB_SYM(Float), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE),
#endif
MRB_MT_ENTRY_PRIVATE(mrb_f_hash, MRB_SYM(Hash), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY(mrb_f_hash, MRB_SYM(Hash), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE),
};
static mrb_mt_tbl kernel_ext_rom_mt = MRB_MT_ROM_TAB(kernel_ext_rom_entries);
+6 -10
View File
@@ -9,12 +9,8 @@
#include <mruby/khash.h>
#include <mruby/presym.h>
#undef MRB_MT_PUBLIC
#undef MRB_MT_PRIVATE
#define MRB_MT_PUBLIC MRB_METHOD_PUBLIC_FL
#define MRB_MT_PRIVATE MRB_METHOD_PRIVATE_FL
#define MT_PROTECTED MRB_METHOD_PROTECTED_FL
#define MT_NOPRIV (MRB_MT_PRIVATE|MT_PROTECTED)
#define MT_NOPRIV (MRB_METHOD_PRIVATE_FL|MT_PROTECTED)
static mrb_value
mrb_f_nil(mrb_state *mrb, mrb_value cv)
@@ -139,7 +135,7 @@ struct mt_set {
khash_t(st) *set;
};
#define vicheck(flags, visi) (((visi)==MT_NOPRIV) ? (((flags)&0x3)!=MRB_MT_PRIVATE) : (((flags)&0x3)==(visi)))
#define vicheck(flags, visi) (((visi)==MT_NOPRIV) ? (((flags)&MRB_METHOD_VISIBILITY_MASK)!=MRB_METHOD_PRIVATE_FL) : (((flags)&MRB_METHOD_VISIBILITY_MASK)==(visi)))
static int
method_entry_i(mrb_state *mrb, mrb_sym mid, mrb_method_t m, void *p)
@@ -243,7 +239,7 @@ mrb_obj_methods_m(mrb_state *mrb, mrb_value self)
static mrb_value
mrb_obj_private_methods(mrb_state *mrb, mrb_value self)
{
return mrb_obj_methods(mrb, self, MRB_MT_PRIVATE);
return mrb_obj_methods(mrb, self, MRB_METHOD_PRIVATE_FL);
}
/* 15.3.1.3.37 */
@@ -569,7 +565,7 @@ mrb_mod_public_instance_methods(mrb_state *mrb, mrb_value mod)
static mrb_value
mrb_mod_private_instance_methods(mrb_state *mrb, mrb_value mod)
{
return mod_instance_methods(mrb, mod, MRB_MT_PRIVATE);
return mod_instance_methods(mrb, mod, MRB_METHOD_PRIVATE_FL);
}
static mrb_value
@@ -691,8 +687,8 @@ mrb_mod_s_nesting(mrb_state *mrb, mrb_value mod)
/* ---------------------------*/
static const mrb_mt_entry metaprog_krn_rom_entries[] = {
MRB_MT_ENTRY_PRIVATE(mrb_f_global_variables, MRB_SYM(global_variables), MRB_ARGS_NONE()), /* 15.3.1.3.14 (15.3.1.2.4) */
MRB_MT_ENTRY_PRIVATE(mrb_local_variables, MRB_SYM(local_variables), MRB_ARGS_NONE()), /* 15.3.1.3.28 (15.3.1.2.7) */
MRB_MT_ENTRY(mrb_f_global_variables, MRB_SYM(global_variables), MRB_ARGS_NONE() | MRB_MT_PRIVATE), /* 15.3.1.3.14 (15.3.1.2.4) */
MRB_MT_ENTRY(mrb_local_variables, MRB_SYM(local_variables), MRB_ARGS_NONE() | MRB_MT_PRIVATE), /* 15.3.1.3.28 (15.3.1.2.7) */
MRB_MT_ENTRY(mrb_singleton_class, MRB_SYM(singleton_class), MRB_ARGS_NONE()),
MRB_MT_ENTRY(mrb_obj_ivar_defined, MRB_SYM_Q(instance_variable_defined), MRB_ARGS_REQ(1)), /* 15.3.1.3.20 */
MRB_MT_ENTRY(mrb_obj_ivar_get, MRB_SYM(instance_variable_get), MRB_ARGS_REQ(1)), /* 15.3.1.3.21 */
+1 -1
View File
@@ -782,7 +782,7 @@ static const mrb_mt_entry struct_rom_entries[] = {
MRB_MT_ENTRY(mrb_struct_aset, MRB_OPSYM(aset), MRB_ARGS_REQ(2)), /* 15.2.18.4.3 */
MRB_MT_ENTRY(mrb_struct_members, MRB_SYM(members), MRB_ARGS_NONE()), /* 15.2.18.4.6 */
MRB_MT_ENTRY(mrb_struct_initialize, MRB_SYM(initialize), MRB_ARGS_ANY()), /* 15.2.18.4.8 */
MRB_MT_ENTRY_PRIVATE(mrb_struct_init_copy, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1)), /* 15.2.18.4.9 */
MRB_MT_ENTRY(mrb_struct_init_copy, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE), /* 15.2.18.4.9 */
MRB_MT_ENTRY(mrb_struct_eql, MRB_SYM_Q(eql), MRB_ARGS_REQ(1)), /* 15.2.18.4.12(x) */
MRB_MT_ENTRY(mrb_struct_to_s, MRB_SYM(to_s), MRB_ARGS_NONE()), /* 15.2.18.4.11(x) */
MRB_MT_ENTRY(mrb_struct_to_s, MRB_SYM(inspect), MRB_ARGS_NONE()), /* 15.2.18.4.10(x) */
+2 -2
View File
@@ -1699,8 +1699,8 @@ static const mrb_mt_entry time_rom_entries[] = {
MRB_MT_ENTRY(time_yday, MRB_SYM(yday), MRB_ARGS_NONE()), /* 15.2.19.7.31 */
MRB_MT_ENTRY(time_year, MRB_SYM(year), MRB_ARGS_NONE()), /* 15.2.19.7.32 */
MRB_MT_ENTRY(time_zone, MRB_SYM(zone), MRB_ARGS_NONE()), /* 15.2.19.7.33 */
MRB_MT_ENTRY_PRIVATE(time_init, MRB_SYM(initialize), MRB_ARGS_REQ(1)), /* 15.2.19.7.16 */
MRB_MT_ENTRY_PRIVATE(time_init_copy, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1)), /* 15.2.19.7.17 */
MRB_MT_ENTRY(time_init, MRB_SYM(initialize), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE), /* 15.2.19.7.16 */
MRB_MT_ENTRY(time_init_copy, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE), /* 15.2.19.7.17 */
MRB_MT_ENTRY(time_sunday, MRB_SYM_Q(sunday), MRB_ARGS_NONE()),
MRB_MT_ENTRY(time_monday, MRB_SYM_Q(monday), MRB_ARGS_NONE()),
MRB_MT_ENTRY(time_tuesday, MRB_SYM_Q(tuesday), MRB_ARGS_NONE()),
+2 -2
View File
@@ -2265,8 +2265,8 @@ static const mrb_mt_entry array_rom_entries[] = {
MRB_MT_ENTRY(mrb_ary_eql, MRB_SYM_Q(eql), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY(mrb_ary_first, MRB_SYM(first), MRB_ARGS_OPT(1)), /* 15.2.12.5.13 */
MRB_MT_ENTRY(mrb_ary_index_m, MRB_SYM(index), MRB_ARGS_REQ(1)), /* 15.2.12.5.14 */
MRB_MT_ENTRY_PRIVATE(mrb_ary_init, MRB_SYM(initialize), MRB_ARGS_OPT(2)), /* 15.2.12.5.15 */
MRB_MT_ENTRY_PRIVATE(mrb_ary_replace_m, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1)), /* 15.2.12.5.16 */
MRB_MT_ENTRY(mrb_ary_init, MRB_SYM(initialize), MRB_ARGS_OPT(2) | MRB_MT_PRIVATE), /* 15.2.12.5.15 */
MRB_MT_ENTRY(mrb_ary_replace_m, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE), /* 15.2.12.5.16 */
MRB_MT_ENTRY(mrb_ary_join_m, MRB_SYM(join), MRB_ARGS_OPT(1)), /* 15.2.12.5.17 */
MRB_MT_ENTRY(mrb_ary_last, MRB_SYM(last), MRB_ARGS_OPT(1)), /* 15.2.12.5.18 */
MRB_MT_ENTRY(mrb_ary_size, MRB_SYM(length), MRB_ARGS_NONE()), /* 15.2.12.5.19 */
+35 -35
View File
@@ -1026,19 +1026,19 @@ mrb_define_method_raw(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_method_
if (mid == MRB_SYM(initialize) ||
mid == MRB_SYM(initialize_copy) ||
mid == MRB_SYM_Q(respond_to_missing)) {
MRB_SET_VISIBILITY_FLAGS(flags, MRB_MT_PRIVATE);
MRB_SET_VISIBILITY_FLAGS(flags, MRB_METHOD_PRIVATE_FL);
}
else if ((flags & MT_VMASK) == MT_VDEFAULT) {
/* singleton methods are always public */
if (c->tt == MRB_TT_SCLASS) {
MRB_SET_VISIBILITY_FLAGS(flags, MRB_MT_PUBLIC);
MRB_SET_VISIBILITY_FLAGS(flags, MRB_METHOD_PUBLIC_FL);
}
else {
mrb_callinfo *ci;
struct REnv *e;
find_visibility_scope(mrb, c, 0, &ci, &e);
mrb_assert(ci || e);
MRB_SET_VISIBILITY_FLAGS(flags, (e ? MRB_ENV_VISIBILITY(e) : MRB_CI_VISIBILITY(ci)));
MRB_SET_VISIBILITY_FLAGS(flags, (uint32_t)(e ? MRB_ENV_VISIBILITY(e) : MRB_CI_VISIBILITY(ci)) << 25);
}
}
mt_put(mrb, h, mid, flags, ptr);
@@ -1052,7 +1052,7 @@ define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t func,
int ai = mrb_gc_arena_save(mrb);
MRB_METHOD_FROM_FUNC(m, func);
m.flags |= (aspec << 4);
m.flags |= aspec;
MRB_METHOD_SET_VISIBILITY(m, vis);
mrb_define_method_raw(mrb, c, mid, m);
mrb_gc_arena_restore(mrb, ai);
@@ -1072,7 +1072,7 @@ define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t func,
MRB_API void
mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t func, mrb_aspec aspec)
{
define_method_id(mrb, c, mid, func, aspec, MRB_MT_PUBLIC);
define_method_id(mrb, c, mid, func, aspec, MRB_METHOD_PUBLIC_FL);
}
/*
@@ -1107,7 +1107,7 @@ mrb_define_method(mrb_state *mrb, struct RClass *c, const char *name, mrb_func_t
MRB_API void
mrb_define_private_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t func, mrb_aspec aspec)
{
define_method_id(mrb, c, mid, func, aspec, MRB_MT_PRIVATE);
define_method_id(mrb, c, mid, func, aspec, MRB_METHOD_PRIVATE_FL);
}
/*
@@ -2262,10 +2262,10 @@ mrb_mod_visibility(mrb_state *mrb, mrb_value mod, int vis)
struct REnv *e;
find_visibility_scope(mrb, NULL, 1, &ci, &e);
if (e) {
MRB_ENV_SET_VISIBILITY(e, vis);
MRB_ENV_SET_VISIBILITY(e, vis >> 25);
}
else {
MRB_CI_SET_VISIBILITY(ci, vis);
MRB_CI_SET_VISIBILITY(ci, vis >> 25);
}
}
else {
@@ -2291,14 +2291,14 @@ mrb_mod_visibility(mrb_state *mrb, mrb_value mod, int vis)
static mrb_value
mrb_mod_public(mrb_state *mrb, mrb_value mod)
{
mrb_mod_visibility(mrb, mod, MRB_MT_PUBLIC);
mrb_mod_visibility(mrb, mod, MRB_METHOD_PUBLIC_FL);
return mod;
}
static mrb_value
mrb_mod_private(mrb_state *mrb, mrb_value mod)
{
mrb_mod_visibility(mrb, mod, MRB_MT_PRIVATE);
mrb_mod_visibility(mrb, mod, MRB_METHOD_PRIVATE_FL);
return mod;
}
@@ -2313,7 +2313,7 @@ static mrb_value
top_public(mrb_state *mrb, mrb_value self)
{
self = mrb_obj_value(mrb->object_class);
mrb_mod_visibility(mrb, self, MRB_MT_PUBLIC);
mrb_mod_visibility(mrb, self, MRB_METHOD_PUBLIC_FL);
return self;
}
@@ -2321,7 +2321,7 @@ static mrb_value
top_private(mrb_state *mrb, mrb_value self)
{
self = mrb_obj_value(mrb->object_class);
mrb_mod_visibility(mrb, self, MRB_MT_PRIVATE);
mrb_mod_visibility(mrb, self, MRB_METHOD_PRIVATE_FL);
return self;
}
@@ -3812,7 +3812,7 @@ define_method_m(mrb_state *mrb, struct RClass *c, int vis)
mrb_value
mrb_mod_define_method_m(mrb_state *mrb, struct RClass *c)
{
return define_method_m(mrb, c, MRB_MT_PUBLIC);
return define_method_m(mrb, c, MRB_METHOD_PUBLIC_FL);
}
static mrb_value
@@ -3824,7 +3824,7 @@ mod_define_method(mrb_state *mrb, mrb_value self)
static mrb_value
top_define_method(mrb_state *mrb, mrb_value self)
{
return define_method_m(mrb, mrb->object_class, MRB_MT_PRIVATE);
return define_method_m(mrb, mrb->object_class, MRB_METHOD_PRIVATE_FL);
}
static mrb_value
@@ -3870,7 +3870,7 @@ mrb_mod_module_function(mrb_state *mrb, mrb_value mod)
mrb_method_t m = mrb_method_search(mrb, rclass, mid);
prepare_singleton_class(mrb, (struct RBasic*)rclass);
MRB_METHOD_SET_VISIBILITY(m, MRB_MT_PUBLIC);
MRB_METHOD_SET_VISIBILITY(m, MRB_METHOD_PUBLIC_FL);
mrb_define_method_raw(mrb, rclass->c, mid, m);
mrb_gc_arena_restore(mrb, ai);
}
@@ -4263,19 +4263,19 @@ static const mrb_mt_entry bob_rom_entries[] = {
MRB_MT_ENTRY(mrb_obj_id_m, MRB_SYM(__id__), MRB_ARGS_NONE()), /* 15.3.1.3.4 */
MRB_MT_ENTRY(mrb_f_send, MRB_SYM(__send__), MRB_ARGS_REQ(1)|MRB_ARGS_REST()|MRB_ARGS_BLOCK()), /* 15.3.1.3.5 */
MRB_MT_ENTRY(mrb_obj_equal_m, MRB_SYM_Q(equal), MRB_ARGS_REQ(1)), /* 15.3.1.3.11 */
MRB_MT_ENTRY_PRIVATE(mrb_do_nothing, MRB_SYM(initialize), MRB_ARGS_NONE()),
MRB_MT_ENTRY(mrb_do_nothing, MRB_SYM(initialize), MRB_ARGS_NONE() | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_obj_instance_eval, MRB_SYM(instance_eval), MRB_ARGS_OPT(1)|MRB_ARGS_BLOCK()), /* 15.3.1.3.18 */
MRB_MT_ENTRY_PRIVATE(mrb_obj_missing, MRB_SYM(method_missing), MRB_ARGS_ANY()), /* 15.3.1.3.30 */
MRB_MT_ENTRY_PRIVATE(mrb_do_nothing, MRB_SYM(singleton_method_added), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY_PRIVATE(mrb_do_nothing, MRB_SYM(singleton_method_removed), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY_PRIVATE(mrb_do_nothing, MRB_SYM(singleton_method_undefined), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY(mrb_obj_missing, MRB_SYM(method_missing), MRB_ARGS_ANY() | MRB_MT_PRIVATE), /* 15.3.1.3.30 */
MRB_MT_ENTRY(mrb_do_nothing, MRB_SYM(singleton_method_added), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_do_nothing, MRB_SYM(singleton_method_removed), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_do_nothing, MRB_SYM(singleton_method_undefined), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE),
};
static mrb_mt_tbl bob_rom_mt = MRB_MT_ROM_TAB(bob_rom_entries);
static const mrb_mt_entry cls_rom_entries[] = {
MRB_MT_ENTRY(mrb_instance_alloc, MRB_SYM(allocate), MRB_ARGS_NONE()),
MRB_MT_ENTRY_PRIVATE(mrb_do_nothing, MRB_SYM(inherited), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY_PRIVATE(mrb_class_initialize, MRB_SYM(initialize), MRB_ARGS_OPT(1)), /* 15.2.3.3.1 */
MRB_MT_ENTRY(mrb_do_nothing, MRB_SYM(inherited), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_class_initialize, MRB_SYM(initialize), MRB_ARGS_OPT(1) | MRB_MT_PRIVATE), /* 15.2.3.3.1 */
MRB_MT_ENTRY(mrb_class_superclass, MRB_SYM(superclass), MRB_ARGS_NONE()), /* 15.2.3.3.4 */
};
static mrb_mt_tbl cls_rom_mt = MRB_MT_ROM_TAB(cls_rom_entries);
@@ -4288,31 +4288,31 @@ static const mrb_mt_entry mod_rom_entries[] = {
MRB_MT_ENTRY(mrb_mod_attr_reader, MRB_SYM(attr_reader), MRB_ARGS_ANY()), /* 15.2.2.4.13 */
MRB_MT_ENTRY(mrb_mod_attr_writer, MRB_SYM(attr_writer), MRB_ARGS_ANY()), /* 15.2.2.4.14 */
MRB_MT_ENTRY(mrb_mod_module_eval, MRB_SYM(class_eval), MRB_ARGS_ANY()), /* 15.2.2.4.15 */
MRB_MT_ENTRY_PRIVATE(mrb_do_nothing, MRB_SYM(const_added), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY(mrb_do_nothing, MRB_SYM(const_added), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_mod_const_defined, MRB_SYM_Q(const_defined), MRB_ARGS_ARG(1,1)), /* 15.2.2.4.20 */
MRB_MT_ENTRY(mrb_mod_const_get, MRB_SYM(const_get), MRB_ARGS_REQ(1)), /* 15.2.2.4.21 */
MRB_MT_ENTRY(mrb_mod_const_missing, MRB_SYM(const_missing), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY(mrb_mod_const_set, MRB_SYM(const_set), MRB_ARGS_REQ(2)), /* 15.2.2.4.23 */
MRB_MT_ENTRY(mod_define_method, MRB_SYM(define_method), MRB_ARGS_ARG(1,1)),
MRB_MT_ENTRY(mrb_mod_dup, MRB_SYM(dup), MRB_ARGS_NONE()),
MRB_MT_ENTRY_PRIVATE(mrb_do_nothing, MRB_SYM(extended), MRB_ARGS_REQ(1)), /* 15.2.2.4.26 */
MRB_MT_ENTRY(mrb_do_nothing, MRB_SYM(extended), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE), /* 15.2.2.4.26 */
MRB_MT_ENTRY(mrb_mod_include, MRB_SYM(include), MRB_ARGS_REQ(1)), /* 15.2.2.4.27 */
MRB_MT_ENTRY(mrb_mod_include_p, MRB_SYM_Q(include), MRB_ARGS_REQ(1)), /* 15.2.2.4.28 */
MRB_MT_ENTRY_PRIVATE(mrb_do_nothing, MRB_SYM(included), MRB_ARGS_REQ(1)), /* 15.2.2.4.29 */
MRB_MT_ENTRY_PRIVATE(mrb_mod_initialize, MRB_SYM(initialize), MRB_ARGS_NONE()), /* 15.2.2.4.31 */
MRB_MT_ENTRY(mrb_do_nothing, MRB_SYM(included), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE), /* 15.2.2.4.29 */
MRB_MT_ENTRY(mrb_mod_initialize, MRB_SYM(initialize), MRB_ARGS_NONE() | MRB_MT_PRIVATE), /* 15.2.2.4.31 */
MRB_MT_ENTRY(mrb_mod_to_s, MRB_SYM(inspect), MRB_ARGS_NONE()),
MRB_MT_ENTRY_PRIVATE(mrb_do_nothing, MRB_SYM(method_added), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY_PRIVATE(mrb_do_nothing, MRB_SYM(method_removed), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY(mrb_do_nothing, MRB_SYM(method_added), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_do_nothing, MRB_SYM(method_removed), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_mod_method_defined, MRB_SYM_Q(method_defined), MRB_ARGS_REQ(1)), /* 15.2.2.4.34 */
MRB_MT_ENTRY_PRIVATE(mrb_do_nothing, MRB_SYM(method_undefined), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY(mrb_do_nothing, MRB_SYM(method_undefined), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_mod_module_eval, MRB_SYM(module_eval), MRB_ARGS_ANY()), /* 15.2.2.4.35 */
MRB_MT_ENTRY_PRIVATE(mrb_mod_module_function, MRB_SYM(module_function), MRB_ARGS_ANY()),
MRB_MT_ENTRY(mrb_mod_module_function, MRB_SYM(module_function), MRB_ARGS_ANY() | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_mod_prepend, MRB_SYM(prepend), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY_PRIVATE(mrb_do_nothing, MRB_SYM(prepended), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY_PRIVATE(mrb_mod_private, MRB_SYM(private), MRB_ARGS_ANY()), /* 15.2.2.4.36 */
MRB_MT_ENTRY_PRIVATE(mrb_mod_protected, MRB_SYM(protected), MRB_ARGS_ANY()), /* 15.2.2.4.37 */
MRB_MT_ENTRY_PRIVATE(mrb_mod_public, MRB_SYM(public), MRB_ARGS_ANY()), /* 15.2.2.4.38 */
MRB_MT_ENTRY_PRIVATE(mrb_mod_remove_const, MRB_SYM(remove_const), MRB_ARGS_REQ(1)), /* 15.2.2.4.40 */
MRB_MT_ENTRY(mrb_do_nothing, MRB_SYM(prepended), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_mod_private, MRB_SYM(private), MRB_ARGS_ANY() | MRB_MT_PRIVATE), /* 15.2.2.4.36 */
MRB_MT_ENTRY(mrb_mod_protected, MRB_SYM(protected), MRB_ARGS_ANY() | MRB_MT_PRIVATE), /* 15.2.2.4.37 */
MRB_MT_ENTRY(mrb_mod_public, MRB_SYM(public), MRB_ARGS_ANY() | MRB_MT_PRIVATE), /* 15.2.2.4.38 */
MRB_MT_ENTRY(mrb_mod_remove_const, MRB_SYM(remove_const), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE), /* 15.2.2.4.40 */
MRB_MT_ENTRY(mrb_mod_to_s, MRB_SYM(to_s), MRB_ARGS_NONE()),
MRB_MT_ENTRY(mrb_mod_undef, MRB_SYM(undef_method), MRB_ARGS_ANY()), /* 15.2.2.4.41 */
};
+1 -1
View File
@@ -894,7 +894,7 @@ mrb_check_error(mrb_state *mrb)
/* ---------------------------*/
static const mrb_mt_entry exception_rom_entries[] = {
MRB_MT_ENTRY(exc_exception, MRB_SYM(exception), MRB_ARGS_OPT(1)),
MRB_MT_ENTRY_PRIVATE(exc_initialize, MRB_SYM(initialize), MRB_ARGS_OPT(1)),
MRB_MT_ENTRY(exc_initialize, MRB_SYM(initialize), MRB_ARGS_OPT(1) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(exc_to_s, MRB_SYM(to_s), MRB_ARGS_NONE()),
MRB_MT_ENTRY(exc_to_s, MRB_SYM(message), MRB_ARGS_NONE()),
MRB_MT_ENTRY(mrb_exc_inspect, MRB_SYM(inspect), MRB_ARGS_NONE()),
+2 -2
View File
@@ -2318,8 +2318,8 @@ static const mrb_mt_entry hash_rom_entries[] = {
MRB_MT_ENTRY(mrb_hash_has_key, MRB_SYM_Q(has_key), MRB_ARGS_REQ(1)), /* 15.2.13.4.13 */
MRB_MT_ENTRY(mrb_hash_has_value, MRB_SYM_Q(has_value), MRB_ARGS_REQ(1)), /* 15.2.13.4.14 */
MRB_MT_ENTRY(mrb_hash_has_key, MRB_SYM_Q(include), MRB_ARGS_REQ(1)), /* 15.2.13.4.15 */
MRB_MT_ENTRY_PRIVATE(mrb_hash_init, MRB_SYM(initialize), MRB_ARGS_OPT(1)|MRB_ARGS_BLOCK()), /* 15.2.13.4.16 */
MRB_MT_ENTRY_PRIVATE(mrb_hash_init_copy, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1)), /* 15.2.13.4.17 */
MRB_MT_ENTRY(mrb_hash_init, MRB_SYM(initialize), MRB_ARGS_OPT(1)|MRB_ARGS_BLOCK() | MRB_MT_PRIVATE), /* 15.2.13.4.16 */
MRB_MT_ENTRY(mrb_hash_init_copy, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE), /* 15.2.13.4.17 */
MRB_MT_ENTRY(mrb_hash_has_key, MRB_SYM_Q(key), MRB_ARGS_REQ(1)), /* 15.2.13.4.18 */
MRB_MT_ENTRY(mrb_hash_keys, MRB_SYM(keys), MRB_ARGS_NONE()), /* 15.2.13.4.19 */
MRB_MT_ENTRY(mrb_hash_size_m, MRB_SYM(length), MRB_ARGS_NONE()), /* 15.2.13.4.20 */
+7 -7
View File
@@ -669,7 +669,7 @@ mrb_p_m(mrb_state *mrb, mrb_value self)
static const mrb_mt_entry kernel_rom_entries[] = {
MRB_MT_ENTRY(mrb_eqq_m, MRB_OPSYM(eqq), MRB_ARGS_REQ(1)), /* 15.3.1.3.2 */
MRB_MT_ENTRY(mrb_cmp_m, MRB_OPSYM(cmp), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY_PRIVATE(mrb_f_block_given_p_m, MRB_SYM_Q(block_given), MRB_ARGS_NONE()), /* 15.3.1.3.6 */
MRB_MT_ENTRY(mrb_f_block_given_p_m, MRB_SYM_Q(block_given), MRB_ARGS_NONE() | MRB_MT_PRIVATE), /* 15.3.1.3.6 */
MRB_MT_ENTRY(mrb_obj_class_m, MRB_SYM(class), MRB_ARGS_NONE()), /* 15.3.1.3.7 */
MRB_MT_ENTRY(mrb_obj_clone, MRB_SYM(clone), MRB_ARGS_NONE()), /* 15.3.1.3.8 */
MRB_MT_ENTRY(mrb_obj_dup, MRB_SYM(dup), MRB_ARGS_NONE()), /* 15.3.1.3.9 */
@@ -678,25 +678,25 @@ static const mrb_mt_entry kernel_rom_entries[] = {
MRB_MT_ENTRY(mrb_obj_frozen, MRB_SYM_Q(frozen), MRB_ARGS_NONE()),
MRB_MT_ENTRY(mrb_obj_extend, MRB_SYM(extend), MRB_ARGS_ANY()), /* 15.3.1.3.13 */
MRB_MT_ENTRY(mrb_obj_hash, MRB_SYM(hash), MRB_ARGS_NONE()), /* 15.3.1.3.15 */
MRB_MT_ENTRY_PRIVATE(mrb_obj_init_copy, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1)), /* 15.3.1.3.16 */
MRB_MT_ENTRY(mrb_obj_init_copy, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE), /* 15.3.1.3.16 */
MRB_MT_ENTRY(mrb_obj_inspect, MRB_SYM(inspect), MRB_ARGS_NONE()), /* 15.3.1.3.17 */
MRB_MT_ENTRY(obj_is_instance_of, MRB_SYM_Q(instance_of), MRB_ARGS_REQ(1)), /* 15.3.1.3.19 */
MRB_MT_ENTRY(mrb_obj_is_kind_of_m, MRB_SYM_Q(is_a), MRB_ARGS_REQ(1)), /* 15.3.1.3.24 */
MRB_MT_ENTRY_PRIVATE(mrb_f_block_given_p_m, MRB_SYM_Q(iterator), MRB_ARGS_NONE()), /* 15.3.1.3.25 */
MRB_MT_ENTRY(mrb_f_block_given_p_m, MRB_SYM_Q(iterator), MRB_ARGS_NONE() | MRB_MT_PRIVATE), /* 15.3.1.3.25 */
MRB_MT_ENTRY(mrb_obj_is_kind_of_m, MRB_SYM_Q(kind_of), MRB_ARGS_REQ(1)), /* 15.3.1.3.26 */
MRB_MT_ENTRY(mrb_false, MRB_SYM_Q(nil), MRB_ARGS_NONE()), /* 15.3.1.3.32 */
MRB_MT_ENTRY(mrb_obj_id_m, MRB_SYM(object_id), MRB_ARGS_NONE()), /* 15.3.1.3.33 */
MRB_MT_ENTRY_PRIVATE(mrb_f_raise, MRB_SYM(raise), MRB_ARGS_OPT(2)), /* 15.3.1.3.40 */
MRB_MT_ENTRY(mrb_f_raise, MRB_SYM(raise), MRB_ARGS_OPT(2) | MRB_MT_PRIVATE), /* 15.3.1.3.40 */
MRB_MT_ENTRY(mrb_obj_remove_instance_variable, MRB_SYM(remove_instance_variable), MRB_ARGS_REQ(1)), /* 15.3.1.3.41 */
MRB_MT_ENTRY(obj_respond_to, MRB_SYM_Q(respond_to), MRB_ARGS_ARG(1,1)), /* 15.3.1.3.43 */
MRB_MT_ENTRY(mrb_any_to_s, MRB_SYM(to_s), MRB_ARGS_NONE()), /* 15.3.1.3.46 */
MRB_MT_ENTRY(mrb_obj_ceqq, MRB_SYM(__case_eqq), MRB_ARGS_REQ(1)), /* internal */
MRB_MT_ENTRY(mrb_ensure_int_type, MRB_SYM(__to_int), MRB_ARGS_NONE()), /* internal */
MRB_MT_ENTRY_PRIVATE(mrb_false, MRB_SYM_Q(respond_to_missing), MRB_ARGS_ARG(1,1)),
MRB_MT_ENTRY(mrb_false, MRB_SYM_Q(respond_to_missing), MRB_ARGS_ARG(1,1) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(mrb_obj_method_recursive_p, MRB_SYM_Q(__method_recursive), MRB_ARGS_ARG(1,1)),
#ifndef HAVE_MRUBY_IO_GEM
MRB_MT_ENTRY_PRIVATE(mrb_p_m, MRB_SYM(p), MRB_ARGS_ANY()), /* 15.3.1.3.34 */
MRB_MT_ENTRY_PRIVATE(mrb_print_m, MRB_SYM(print), MRB_ARGS_ANY()), /* 15.3.1.3.35 */
MRB_MT_ENTRY(mrb_p_m, MRB_SYM(p), MRB_ARGS_ANY() | MRB_MT_PRIVATE), /* 15.3.1.3.34 */
MRB_MT_ENTRY(mrb_print_m, MRB_SYM(print), MRB_ARGS_ANY() | MRB_MT_PRIVATE), /* 15.3.1.3.35 */
#endif
};
static mrb_mt_tbl kernel_rom_mt = MRB_MT_ROM_TAB(kernel_rom_entries);
+1 -1
View File
@@ -546,7 +546,7 @@ mrb_proc_merge_lvar(mrb_state *mrb, mrb_irep *irep, struct REnv *env, int num, c
/* ---------------------------*/
static const mrb_mt_entry proc_rom_entries[] = {
MRB_MT_ENTRY_PRIVATE(mrb_proc_init_copy, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY(mrb_proc_init_copy, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE),
MRB_MT_ENTRY(proc_arity, MRB_SYM(arity), MRB_ARGS_NONE()), /* 15.2.17.4.2 */
MRB_MT_ENTRY(proc_eql, MRB_OPSYM(eq), MRB_ARGS_REQ(1)),
MRB_MT_ENTRY(proc_eql, MRB_SYM_Q(eql), MRB_ARGS_REQ(1)),
+2 -2
View File
@@ -574,13 +574,13 @@ static const mrb_mt_entry range_rom_entries[] = {
MRB_MT_ENTRY(range_excl, MRB_SYM_Q(exclude_end), MRB_ARGS_NONE()), /* 15.2.14.4.6 */
MRB_MT_ENTRY(range_beg, MRB_SYM(first), MRB_ARGS_NONE()), /* 15.2.14.4.7 */
MRB_MT_ENTRY(range_include, MRB_SYM_Q(include), MRB_ARGS_REQ(1)), /* 15.2.14.4.8 */
MRB_MT_ENTRY_PRIVATE(range_initialize, MRB_SYM(initialize), MRB_ARGS_ANY()), /* 15.2.14.4.9 */
MRB_MT_ENTRY(range_initialize, MRB_SYM(initialize), MRB_ARGS_ANY() | MRB_MT_PRIVATE), /* 15.2.14.4.9 */
MRB_MT_ENTRY(range_end, MRB_SYM(last), MRB_ARGS_NONE()), /* 15.2.14.4.10 */
MRB_MT_ENTRY(range_include, MRB_SYM_Q(member), MRB_ARGS_REQ(1)), /* 15.2.14.4.11 */
MRB_MT_ENTRY(range_to_s, MRB_SYM(to_s), MRB_ARGS_NONE()), /* 15.2.14.4.12(x) */
MRB_MT_ENTRY(range_inspect, MRB_SYM(inspect), MRB_ARGS_NONE()), /* 15.2.14.4.13(x) */
MRB_MT_ENTRY(range_eql, MRB_SYM_Q(eql), MRB_ARGS_REQ(1)), /* 15.2.14.4.14(x) */
MRB_MT_ENTRY_PRIVATE(range_initialize_copy, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1)), /* 15.2.14.4.15(x) */
MRB_MT_ENTRY(range_initialize_copy, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE), /* 15.2.14.4.15(x) */
MRB_MT_ENTRY(range_num_to_a, MRB_SYM(__num_to_a), MRB_ARGS_NONE()),
};
static mrb_mt_tbl range_rom_mt = MRB_MT_ROM_TAB(range_rom_entries);
+2 -2
View File
@@ -3529,8 +3529,8 @@ static const mrb_mt_entry string_rom_entries[] = {
MRB_MT_ENTRY(mrb_str_hash_m, MRB_SYM(hash), MRB_ARGS_NONE()), /* 15.2.10.5.20 */
MRB_MT_ENTRY(mrb_str_include, MRB_SYM_Q(include), MRB_ARGS_REQ(1)), /* 15.2.10.5.21 */
MRB_MT_ENTRY(mrb_str_index_m, MRB_SYM(index), MRB_ARGS_ARG(1,1)), /* 15.2.10.5.22 */
MRB_MT_ENTRY_PRIVATE(mrb_str_init, MRB_SYM(initialize), MRB_ARGS_REQ(1)), /* 15.2.10.5.23 */
MRB_MT_ENTRY_PRIVATE(mrb_str_replace, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1)), /* 15.2.10.5.24 */
MRB_MT_ENTRY(mrb_str_init, MRB_SYM(initialize), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE), /* 15.2.10.5.23 */
MRB_MT_ENTRY(mrb_str_replace, MRB_SYM(initialize_copy), MRB_ARGS_REQ(1) | MRB_MT_PRIVATE), /* 15.2.10.5.24 */
MRB_MT_ENTRY(mrb_str_intern, MRB_SYM(intern), MRB_ARGS_NONE()), /* 15.2.10.5.25 */
MRB_MT_ENTRY(mrb_str_size, MRB_SYM(length), MRB_ARGS_NONE()), /* 15.2.10.5.26 */
MRB_MT_ENTRY(mrb_str_replace, MRB_SYM(replace), MRB_ARGS_REQ(1)), /* 15.2.10.5.28 */
+1 -1
View File
@@ -128,7 +128,7 @@ stack_init(mrb_state *mrb)
c->ci = c->cibase;
c->ci->u.target_class = mrb->object_class;
c->ci->stack = c->stbase;
c->ci->vis = MRB_METHOD_PRIVATE_FL;
c->ci->vis = 1; /* private (2-bit packed) */
}
static inline void