mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
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:
@@ -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)`.
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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) */
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user