mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Add MRB_SYM() for inline symbols.
This commit is contained in:
+5
-5
@@ -1312,11 +1312,11 @@ init_ary_each(mrb_state *mrb, struct RClass *ary)
|
||||
|
||||
*each_irep = mrb_irep_zero;
|
||||
each_irep->syms = (mrb_sym*)mrb_malloc(mrb, sizeof(mrb_sym)*5);
|
||||
each_irep->syms[0] = mrb_intern_lit(mrb, "each");
|
||||
each_irep->syms[1] = mrb_intern_lit(mrb, "to_enum");
|
||||
each_irep->syms[0] = MRB_SYM(each);
|
||||
each_irep->syms[1] = MRB_SYM(to_enum);
|
||||
each_irep->syms[2] = mrb_intern_lit(mrb, "[]");
|
||||
each_irep->syms[3] = mrb_intern_lit(mrb, "call");
|
||||
each_irep->syms[4] = mrb_intern_lit(mrb, "length");
|
||||
each_irep->syms[3] = MRB_SYM(call);
|
||||
each_irep->syms[4] = MRB_SYM(length);
|
||||
each_irep->slen = 5;
|
||||
each_irep->flags = MRB_ISEQ_NO_FREE;
|
||||
each_irep->iseq = each_iseq;
|
||||
@@ -1326,7 +1326,7 @@ init_ary_each(mrb_state *mrb, struct RClass *ary)
|
||||
p = mrb_proc_new(mrb, each_irep);
|
||||
p->flags |= MRB_PROC_SCOPE | MRB_PROC_STRICT;
|
||||
MRB_METHOD_FROM_PROC(m, p);
|
||||
mrb_define_method_raw(mrb, ary, mrb_intern_lit(mrb, "each"), m);
|
||||
mrb_define_method_raw(mrb, ary, MRB_SYM(each), m);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
+3
-3
@@ -114,7 +114,7 @@ mrb_print_backtrace(mrb_state *mrb)
|
||||
return;
|
||||
}
|
||||
|
||||
backtrace = mrb_obj_iv_get(mrb, mrb->exc, mrb_intern_lit(mrb, "backtrace"));
|
||||
backtrace = mrb_obj_iv_get(mrb, mrb->exc, MRB_SYM(backtrace));
|
||||
if (mrb_nil_p(backtrace)) return;
|
||||
if (!mrb_array_p(backtrace)) backtrace = mrb_unpack_backtrace(mrb, backtrace);
|
||||
print_backtrace(mrb, mrb->exc, backtrace);
|
||||
@@ -171,7 +171,7 @@ packed_backtrace(mrb_state *mrb)
|
||||
void
|
||||
mrb_keep_backtrace(mrb_state *mrb, mrb_value exc)
|
||||
{
|
||||
mrb_sym sym = mrb_intern_lit(mrb, "backtrace");
|
||||
mrb_sym sym = MRB_SYM(backtrace);
|
||||
mrb_value backtrace;
|
||||
int ai;
|
||||
|
||||
@@ -221,7 +221,7 @@ mrb_exc_backtrace(mrb_state *mrb, mrb_value exc)
|
||||
mrb_sym attr_name;
|
||||
mrb_value backtrace;
|
||||
|
||||
attr_name = mrb_intern_lit(mrb, "backtrace");
|
||||
attr_name = MRB_SYM(backtrace);
|
||||
backtrace = mrb_iv_get(mrb, exc, attr_name);
|
||||
if (mrb_nil_p(backtrace) || mrb_array_p(backtrace)) {
|
||||
return backtrace;
|
||||
|
||||
+16
-16
@@ -58,7 +58,7 @@ void
|
||||
mrb_class_name_class(mrb_state *mrb, struct RClass *outer, struct RClass *c, mrb_sym id)
|
||||
{
|
||||
mrb_value name;
|
||||
mrb_sym nsym = mrb_intern_lit(mrb, "__classname__");
|
||||
mrb_sym nsym = MRB_SYM(__classname__);
|
||||
|
||||
if (mrb_obj_iv_defined(mrb, (struct RObject*)c, nsym)) return;
|
||||
if (outer == NULL || outer == mrb->object_class) {
|
||||
@@ -68,7 +68,7 @@ mrb_class_name_class(mrb_state *mrb, struct RClass *outer, struct RClass *c, mrb
|
||||
name = mrb_class_path(mrb, outer);
|
||||
if (mrb_nil_p(name)) { /* unnamed outer class */
|
||||
if (outer != mrb->object_class && outer != c) {
|
||||
mrb_obj_iv_set_force(mrb, (struct RObject*)c, mrb_intern_lit(mrb, "__outer__"),
|
||||
mrb_obj_iv_set_force(mrb, (struct RObject*)c, MRB_SYM(__outer__),
|
||||
mrb_obj_value(outer));
|
||||
}
|
||||
return;
|
||||
@@ -132,7 +132,7 @@ prepare_singleton_class(mrb_state *mrb, struct RBasic *o)
|
||||
o->c = sc;
|
||||
mrb_field_write_barrier(mrb, (struct RBasic*)o, (struct RBasic*)sc);
|
||||
mrb_field_write_barrier(mrb, (struct RBasic*)sc, (struct RBasic*)o);
|
||||
mrb_obj_iv_set(mrb, (struct RObject*)sc, mrb_intern_lit(mrb, "__attached__"), mrb_obj_value(o));
|
||||
mrb_obj_iv_set(mrb, (struct RObject*)sc, MRB_SYM(__attached__), mrb_obj_value(o));
|
||||
sc->flags |= o->flags & MRB_FL_OBJ_IS_FROZEN;
|
||||
}
|
||||
|
||||
@@ -302,7 +302,7 @@ mrb_class_inherited(mrb_state *mrb, struct RClass *super, struct RClass *klass)
|
||||
super->flags |= MRB_FL_CLASS_IS_INHERITED;
|
||||
s = mrb_obj_value(super);
|
||||
mrb_mc_clear_by_class(mrb, klass);
|
||||
mid = mrb_intern_lit(mrb, "inherited");
|
||||
mid = MRB_SYM(inherited);
|
||||
if (!mrb_func_basic_p(mrb, s, mid, mrb_bob_init)) {
|
||||
mrb_value c = mrb_obj_value(klass);
|
||||
mrb_funcall_argv(mrb, s, mid, 1, &c);
|
||||
@@ -1578,7 +1578,7 @@ mrb_instance_new(mrb_state *mrb, mrb_value cv)
|
||||
|
||||
mrb_get_args(mrb, "*!&", &argv, &argc, &blk);
|
||||
obj = mrb_instance_alloc(mrb, cv);
|
||||
init = mrb_intern_lit(mrb, "initialize");
|
||||
init = MRB_SYM(initialize);
|
||||
if (!mrb_func_basic_p(mrb, obj, init, mrb_bob_init)) {
|
||||
mrb_funcall_with_block(mrb, obj, init, argc, argv, blk);
|
||||
}
|
||||
@@ -1592,7 +1592,7 @@ mrb_obj_new(mrb_state *mrb, struct RClass *c, mrb_int argc, const mrb_value *arg
|
||||
mrb_sym mid;
|
||||
|
||||
obj = mrb_instance_alloc(mrb, mrb_obj_value(c));
|
||||
mid = mrb_intern_lit(mrb, "initialize");
|
||||
mid = MRB_SYM(initialize);
|
||||
if (!mrb_func_basic_p(mrb, obj, mid, mrb_bob_init)) {
|
||||
mrb_funcall_argv(mrb, obj, mid, argc, argv);
|
||||
}
|
||||
@@ -1624,7 +1624,7 @@ mrb_class_new_class(mrb_state *mrb, mrb_value cv)
|
||||
super = mrb_obj_value(mrb->object_class);
|
||||
}
|
||||
new_class = mrb_obj_value(mrb_class_new(mrb, mrb_class_ptr(super)));
|
||||
mid = mrb_intern_lit(mrb, "initialize");
|
||||
mid = MRB_SYM(initialize);
|
||||
if (mrb_func_basic_p(mrb, new_class, mid, mrb_class_initialize)) {
|
||||
mrb_class_initialize(mrb, new_class);
|
||||
}
|
||||
@@ -1722,7 +1722,7 @@ MRB_API mrb_value
|
||||
mrb_class_path(mrb_state *mrb, struct RClass *c)
|
||||
{
|
||||
mrb_value path;
|
||||
mrb_sym nsym = mrb_intern_lit(mrb, "__classname__");
|
||||
mrb_sym nsym = MRB_SYM(__classname__);
|
||||
|
||||
path = mrb_obj_iv_get(mrb, (struct RObject*)c, nsym);
|
||||
if (mrb_nil_p(path)) {
|
||||
@@ -1891,7 +1891,7 @@ mrb_mod_to_s(mrb_state *mrb, mrb_value klass)
|
||||
{
|
||||
|
||||
if (mrb_sclass_p(klass)) {
|
||||
mrb_value v = mrb_iv_get(mrb, klass, mrb_intern_lit(mrb, "__attached__"));
|
||||
mrb_value v = mrb_iv_get(mrb, klass, MRB_SYM(__attached__));
|
||||
mrb_value str = mrb_str_new_lit(mrb, "#<Class:");
|
||||
|
||||
if (class_ptr_p(v)) {
|
||||
@@ -2239,8 +2239,8 @@ init_class_new(mrb_state *mrb, struct RClass *cls)
|
||||
|
||||
*new_irep = mrb_irep_zero;
|
||||
new_irep->syms = (mrb_sym*)mrb_malloc(mrb, sizeof(mrb_sym)*2);
|
||||
new_irep->syms[0] = mrb_intern_lit(mrb, "allocate");
|
||||
new_irep->syms[1] = mrb_intern_lit(mrb, "initialize");
|
||||
new_irep->syms[0] = MRB_SYM(allocate);
|
||||
new_irep->syms[1] = MRB_SYM(initialize);
|
||||
new_irep->slen = 2;
|
||||
new_irep->flags = MRB_ISEQ_NO_FREE;
|
||||
new_irep->iseq = new_iseq;
|
||||
@@ -2249,7 +2249,7 @@ init_class_new(mrb_state *mrb, struct RClass *cls)
|
||||
new_irep->nlocals = 3;
|
||||
p = mrb_proc_new(mrb, new_irep);
|
||||
MRB_METHOD_FROM_PROC(m, p);
|
||||
mrb_define_method_raw(mrb, cls, mrb_intern_lit(mrb, "new"), m);
|
||||
mrb_define_method_raw(mrb, cls, MRB_SYM(new), m);
|
||||
}
|
||||
|
||||
void
|
||||
@@ -2279,10 +2279,10 @@ mrb_init_class(mrb_state *mrb)
|
||||
mrb_define_const(mrb, obj, "Class", mrb_obj_value(cls));
|
||||
|
||||
/* name each classes */
|
||||
mrb_class_name_class(mrb, NULL, bob, mrb_intern_lit(mrb, "BasicObject"));
|
||||
mrb_class_name_class(mrb, NULL, obj, mrb_intern_lit(mrb, "Object")); /* 15.2.1 */
|
||||
mrb_class_name_class(mrb, NULL, mod, mrb_intern_lit(mrb, "Module")); /* 15.2.2 */
|
||||
mrb_class_name_class(mrb, NULL, cls, mrb_intern_lit(mrb, "Class")); /* 15.2.3 */
|
||||
mrb_class_name_class(mrb, NULL, bob, MRB_SYM(BasicObject));
|
||||
mrb_class_name_class(mrb, NULL, obj, MRB_SYM(Object)); /* 15.2.1 */
|
||||
mrb_class_name_class(mrb, NULL, mod, MRB_SYM(Module)); /* 15.2.2 */
|
||||
mrb_class_name_class(mrb, NULL, cls, MRB_SYM(Class)); /* 15.2.3 */
|
||||
|
||||
mrb->proc_class = mrb_define_class(mrb, "Proc", mrb->object_class); /* 15.2.17 */
|
||||
MRB_SET_INSTANCE_TT(mrb->proc_class, MRB_TT_PROC);
|
||||
|
||||
+6
-6
@@ -45,7 +45,7 @@ exc_initialize(mrb_state *mrb, mrb_value exc)
|
||||
mrb_value mesg;
|
||||
|
||||
if (mrb_get_args(mrb, "|o", &mesg) == 1) {
|
||||
mrb_iv_set(mrb, exc, mrb_intern_lit(mrb, "mesg"), mesg);
|
||||
mrb_iv_set(mrb, exc, MRB_SYM(mesg), mesg);
|
||||
}
|
||||
return exc;
|
||||
}
|
||||
@@ -74,7 +74,7 @@ exc_exception(mrb_state *mrb, mrb_value self)
|
||||
if (argc == 0) return self;
|
||||
if (mrb_obj_equal(mrb, self, a)) return self;
|
||||
exc = mrb_obj_clone(mrb, self);
|
||||
mrb_iv_set(mrb, exc, mrb_intern_lit(mrb, "mesg"), a);
|
||||
mrb_iv_set(mrb, exc, MRB_SYM(mesg), a);
|
||||
|
||||
return exc;
|
||||
}
|
||||
@@ -90,7 +90,7 @@ exc_exception(mrb_state *mrb, mrb_value self)
|
||||
mrb_value
|
||||
exc_to_s(mrb_state *mrb, mrb_value exc)
|
||||
{
|
||||
mrb_value mesg = mrb_attr_get(mrb, exc, mrb_intern_lit(mrb, "mesg"));
|
||||
mrb_value mesg = mrb_attr_get(mrb, exc, MRB_SYM(mesg));
|
||||
struct RObject *p;
|
||||
|
||||
if (!mrb_string_p(mesg)) {
|
||||
@@ -130,7 +130,7 @@ exc_message(mrb_state *mrb, mrb_value exc)
|
||||
mrb_value
|
||||
mrb_exc_inspect(mrb_state *mrb, mrb_value exc)
|
||||
{
|
||||
mrb_value mesg = mrb_attr_get(mrb, exc, mrb_intern_lit(mrb, "mesg"));
|
||||
mrb_value mesg = mrb_attr_get(mrb, exc, MRB_SYM(mesg));
|
||||
mrb_value cname = mrb_mod_to_s(mrb, mrb_obj_value(mrb_obj_class(mrb, exc)));
|
||||
mesg = mrb_obj_as_string(mrb, mesg);
|
||||
return RSTRING_LEN(mesg) == 0 ? cname : mrb_format(mrb, "%v (%v)", mesg, cname);
|
||||
@@ -154,7 +154,7 @@ set_backtrace(mrb_state *mrb, mrb_value exc, mrb_value backtrace)
|
||||
p++;
|
||||
}
|
||||
}
|
||||
mrb_iv_set(mrb, exc, mrb_intern_lit(mrb, "backtrace"), backtrace);
|
||||
mrb_iv_set(mrb, exc, MRB_SYM(backtrace), backtrace);
|
||||
}
|
||||
|
||||
static mrb_value
|
||||
@@ -474,7 +474,7 @@ mrb_make_exception(mrb_state *mrb, mrb_int argc, const mrb_value *argv)
|
||||
n = 1;
|
||||
exception_call:
|
||||
{
|
||||
mrb_sym exc = mrb_intern_lit(mrb, "exception");
|
||||
mrb_sym exc = MRB_SYM(exception);
|
||||
if (mrb_respond_to(mrb, argv[0], exc)) {
|
||||
mesg = mrb_funcall_argv(mrb, argv[0], exc, n, argv+1);
|
||||
}
|
||||
|
||||
+5
-5
@@ -683,7 +683,7 @@ mrb_hash_init_copy(mrb_state *mrb, mrb_value self)
|
||||
vret = mrb_obj_value(copy);
|
||||
ifnone = RHASH_IFNONE(self);
|
||||
if (!mrb_nil_p(ifnone)) {
|
||||
mrb_iv_set(mrb, vret, mrb_intern_lit(mrb, "ifnone"), ifnone);
|
||||
mrb_iv_set(mrb, vret, MRB_SYM(ifnone), ifnone);
|
||||
}
|
||||
return vret;
|
||||
}
|
||||
@@ -729,7 +729,7 @@ mrb_hash_get(mrb_state *mrb, mrb_value hash, mrb_value key)
|
||||
return val;
|
||||
}
|
||||
|
||||
mid = mrb_intern_lit(mrb, "default");
|
||||
mid = MRB_SYM(default);
|
||||
if (mrb_func_basic_p(mrb, hash, mid, mrb_hash_default)) {
|
||||
return hash_default(mrb, hash, key);
|
||||
}
|
||||
@@ -824,7 +824,7 @@ mrb_hash_init(mrb_state *mrb, mrb_value hash)
|
||||
}
|
||||
if (!mrb_nil_p(ifnone)) {
|
||||
RHASH(hash)->flags |= MRB_HASH_DEFAULT;
|
||||
mrb_iv_set(mrb, hash, mrb_intern_lit(mrb, "ifnone"), ifnone);
|
||||
mrb_iv_set(mrb, hash, MRB_SYM(ifnone), ifnone);
|
||||
}
|
||||
return hash;
|
||||
}
|
||||
@@ -933,7 +933,7 @@ mrb_hash_set_default(mrb_state *mrb, mrb_value hash)
|
||||
mrb_value ifnone = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_hash_modify(mrb, hash);
|
||||
mrb_iv_set(mrb, hash, mrb_intern_lit(mrb, "ifnone"), ifnone);
|
||||
mrb_iv_set(mrb, hash, MRB_SYM(ifnone), ifnone);
|
||||
RHASH(hash)->flags &= ~MRB_HASH_PROC_DEFAULT;
|
||||
if (!mrb_nil_p(ifnone)) {
|
||||
RHASH(hash)->flags |= MRB_HASH_DEFAULT;
|
||||
@@ -988,7 +988,7 @@ mrb_hash_set_default_proc(mrb_state *mrb, mrb_value hash)
|
||||
mrb_value ifnone = mrb_get_arg1(mrb);
|
||||
|
||||
mrb_hash_modify(mrb, hash);
|
||||
mrb_iv_set(mrb, hash, mrb_intern_lit(mrb, "ifnone"), ifnone);
|
||||
mrb_iv_set(mrb, hash, MRB_SYM(ifnone), ifnone);
|
||||
if (!mrb_nil_p(ifnone)) {
|
||||
RHASH(hash)->flags |= MRB_HASH_PROC_DEFAULT;
|
||||
RHASH(hash)->flags |= MRB_HASH_DEFAULT;
|
||||
|
||||
+3
-3
@@ -33,7 +33,7 @@ mrb_func_basic_p(mrb_state *mrb, mrb_value obj, mrb_sym mid, mrb_func_t func)
|
||||
static mrb_bool
|
||||
mrb_obj_basic_to_s_p(mrb_state *mrb, mrb_value obj)
|
||||
{
|
||||
return mrb_func_basic_p(mrb, obj, mrb_intern_lit(mrb, "to_s"), mrb_any_to_s);
|
||||
return mrb_func_basic_p(mrb, obj, MRB_SYM(to_s), mrb_any_to_s);
|
||||
}
|
||||
|
||||
/* 15.3.1.3.17 */
|
||||
@@ -240,7 +240,7 @@ mrb_singleton_class_clone(mrb_state *mrb, mrb_value obj)
|
||||
clone->super = klass->super;
|
||||
if (klass->iv) {
|
||||
mrb_iv_copy(mrb, mrb_obj_value(clone), mrb_obj_value(klass));
|
||||
mrb_obj_iv_set(mrb, (struct RObject*)clone, mrb_intern_lit(mrb, "__attached__"), obj);
|
||||
mrb_obj_iv_set(mrb, (struct RObject*)clone, MRB_SYM(__attached__), obj);
|
||||
}
|
||||
if (klass->mt) {
|
||||
clone->mt = kh_copy(mt, mrb, klass->mt);
|
||||
@@ -294,7 +294,7 @@ init_copy(mrb_state *mrb, mrb_value dest, mrb_value obj)
|
||||
case MRB_TT_MODULE:
|
||||
copy_class(mrb, dest, obj);
|
||||
mrb_iv_copy(mrb, dest, obj);
|
||||
mrb_iv_remove(mrb, dest, mrb_intern_lit(mrb, "__classname__"));
|
||||
mrb_iv_remove(mrb, dest, MRB_SYM(__classname__));
|
||||
break;
|
||||
case MRB_TT_OBJECT:
|
||||
case MRB_TT_SCLASS:
|
||||
|
||||
+2
-2
@@ -60,11 +60,11 @@ mrb_print_error(mrb_state *mrb)
|
||||
MRB_API void
|
||||
mrb_show_version(mrb_state *mrb)
|
||||
{
|
||||
printstr(mrb_const_get(mrb, mrb_obj_value(mrb->object_class), mrb_intern_lit(mrb, "MRUBY_DESCRIPTION")), stdout);
|
||||
printstr(mrb_const_get(mrb, mrb_obj_value(mrb->object_class), MRB_SYM(MRUBY_DESCRIPTION)), stdout);
|
||||
}
|
||||
|
||||
MRB_API void
|
||||
mrb_show_copyright(mrb_state *mrb)
|
||||
{
|
||||
printstr(mrb_const_get(mrb, mrb_obj_value(mrb->object_class), mrb_intern_lit(mrb, "MRUBY_COPYRIGHT")), stdout);
|
||||
printstr(mrb_const_get(mrb, mrb_obj_value(mrb->object_class), MRB_SYM(MRUBY_COPYRIGHT)), stdout);
|
||||
}
|
||||
|
||||
+2
-2
@@ -200,7 +200,7 @@ mrb_proc_s_new(mrb_state *mrb, mrb_value proc_class)
|
||||
p = (struct RProc *)mrb_obj_alloc(mrb, MRB_TT_PROC, mrb_class_ptr(proc_class));
|
||||
mrb_proc_copy(p, mrb_proc_ptr(blk));
|
||||
proc = mrb_obj_value(p);
|
||||
mrb_funcall_with_block(mrb, proc, mrb_intern_lit(mrb, "initialize"), 0, NULL, proc);
|
||||
mrb_funcall_with_block(mrb, proc, MRB_SYM(initialize), 0, NULL, proc);
|
||||
if (!MRB_PROC_STRICT_P(p) &&
|
||||
mrb->c->ci > mrb->c->cibase && MRB_PROC_ENV(p) == mrb->c->ci[-1].env) {
|
||||
p->flags |= MRB_PROC_ORPHAN;
|
||||
@@ -325,7 +325,7 @@ mrb_init_proc(mrb_state *mrb)
|
||||
p = mrb_proc_new(mrb, call_irep);
|
||||
irep_obj->data = NULL;
|
||||
MRB_METHOD_FROM_PROC(m, p);
|
||||
mrb_define_method_raw(mrb, mrb->proc_class, mrb_intern_lit(mrb, "call"), m);
|
||||
mrb_define_method_raw(mrb, mrb->proc_class, MRB_SYM(call), m);
|
||||
mrb_define_method_raw(mrb, mrb->proc_class, mrb_intern_lit(mrb, "[]"), m);
|
||||
|
||||
mrb_define_class_method(mrb, mrb->kernel_module, "lambda", proc_lambda, MRB_ARGS_NONE()|MRB_ARGS_BLOCK()); /* 15.3.1.2.6 */
|
||||
|
||||
+1
-1
@@ -78,7 +78,7 @@ range_ptr_init(mrb_state *mrb, struct RRange *r, mrb_value beg, mrb_value end, m
|
||||
if (r) {
|
||||
if (RANGE_INITIALIZED_P(r)) {
|
||||
/* Ranges are immutable, so that they should be initialized only once. */
|
||||
mrb_name_error(mrb, mrb_intern_lit(mrb, "initialize"), "'initialize' called twice");
|
||||
mrb_name_error(mrb, MRB_SYM(initialize), "'initialize' called twice");
|
||||
}
|
||||
else {
|
||||
range_ptr_alloc_edges(mrb, r);
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
#include <mruby/class.h>
|
||||
|
||||
#undef MRB_PRESYM_MAX
|
||||
#undef MRB_PRESYM_CSYM
|
||||
#undef MRB_PRESYM_SYM
|
||||
#define MRB_PRESYM_CSYM(sym, num) #sym,
|
||||
#define MRB_PRESYM_SYM(sym, num) #sym,
|
||||
|
||||
|
||||
+9
-11
@@ -379,11 +379,11 @@ assign_class_name(mrb_state *mrb, struct RObject *obj, mrb_sym sym, mrb_value v)
|
||||
if (namespace_p(obj->tt) && namespace_p(mrb_type(v))) {
|
||||
struct RObject *c = mrb_obj_ptr(v);
|
||||
if (obj != c && ISUPPER(mrb_sym_name_len(mrb, sym, NULL)[0])) {
|
||||
mrb_sym id_classname = mrb_intern_lit(mrb, "__classname__");
|
||||
mrb_sym id_classname = MRB_SYM(__classname__);
|
||||
mrb_value o = mrb_obj_iv_get(mrb, c, id_classname);
|
||||
|
||||
if (mrb_nil_p(o)) {
|
||||
mrb_sym id_outer = mrb_intern_lit(mrb, "__outer__");
|
||||
mrb_sym id_outer = MRB_SYM(__outer__);
|
||||
o = mrb_obj_iv_get(mrb, c, id_outer);
|
||||
|
||||
if (mrb_nil_p(o)) {
|
||||
@@ -643,8 +643,7 @@ mrb_mod_cv_get(mrb_state *mrb, struct RClass *c, mrb_sym sym)
|
||||
if (cls && cls->tt == MRB_TT_SCLASS) {
|
||||
mrb_value klass;
|
||||
|
||||
klass = mrb_obj_iv_get(mrb, (struct RObject *)cls,
|
||||
mrb_intern_lit(mrb, "__attached__"));
|
||||
klass = mrb_obj_iv_get(mrb, (struct RObject *)cls, MRB_SYM(__attached__));
|
||||
c = mrb_class_ptr(klass);
|
||||
if (c->tt == MRB_TT_CLASS || c->tt == MRB_TT_MODULE) {
|
||||
given = FALSE;
|
||||
@@ -688,8 +687,7 @@ mrb_mod_cv_set(mrb_state *mrb, struct RClass *c, mrb_sym sym, mrb_value v)
|
||||
if (cls && cls->tt == MRB_TT_SCLASS) {
|
||||
mrb_value klass;
|
||||
|
||||
klass = mrb_obj_iv_get(mrb, (struct RObject*)cls,
|
||||
mrb_intern_lit(mrb, "__attached__"));
|
||||
klass = mrb_obj_iv_get(mrb, (struct RObject*)cls, MRB_SYM(__attached__));
|
||||
switch (mrb_type(klass)) {
|
||||
case MRB_TT_CLASS:
|
||||
case MRB_TT_MODULE:
|
||||
@@ -803,7 +801,7 @@ L_RETRY:
|
||||
goto L_RETRY;
|
||||
}
|
||||
name = mrb_symbol_value(sym);
|
||||
return mrb_funcall_argv(mrb, mrb_obj_value(base), mrb_intern_lit(mrb, "const_missing"), 1, &name);
|
||||
return mrb_funcall_argv(mrb, mrb_obj_value(base), MRB_SYM(const_missing), 1, &name);
|
||||
}
|
||||
|
||||
MRB_API mrb_value
|
||||
@@ -829,7 +827,7 @@ mrb_vm_const_get(mrb_state *mrb, mrb_sym sym)
|
||||
while (c2 && c2->tt == MRB_TT_SCLASS) {
|
||||
mrb_value klass;
|
||||
|
||||
if (!iv_get(mrb, c2->iv, mrb_intern_lit(mrb, "__attached__"), &klass)) {
|
||||
if (!iv_get(mrb, c2->iv, MRB_SYM(__attached__), &klass)) {
|
||||
c2 = NULL;
|
||||
break;
|
||||
}
|
||||
@@ -1070,7 +1068,7 @@ outer_class(mrb_state *mrb, struct RClass *c)
|
||||
{
|
||||
mrb_value ov;
|
||||
|
||||
ov = mrb_obj_iv_get(mrb, (struct RObject*)c, mrb_intern_lit(mrb, "__outer__"));
|
||||
ov = mrb_obj_iv_get(mrb, (struct RObject*)c, MRB_SYM(__outer__));
|
||||
if (mrb_nil_p(ov)) return NULL;
|
||||
switch (mrb_type(ov)) {
|
||||
case MRB_TT_CLASS:
|
||||
@@ -1120,8 +1118,8 @@ mrb_class_find_path(mrb_state *mrb, struct RClass *c)
|
||||
str = mrb_sym_name_len(mrb, name, &len);
|
||||
mrb_str_cat(mrb, path, str, len);
|
||||
if (RSTRING_PTR(path)[0] != '#') {
|
||||
iv_del(mrb, c->iv, mrb_intern_lit(mrb, "__outer__"), NULL);
|
||||
iv_put(mrb, c->iv, mrb_intern_lit(mrb, "__classname__"), path);
|
||||
iv_del(mrb, c->iv, MRB_SYM(__outer__), NULL);
|
||||
iv_put(mrb, c->iv, MRB_SYM(__classname__), path);
|
||||
mrb_field_write_barrier_value(mrb, (struct RBasic*)c, path);
|
||||
path = mrb_str_dup(mrb, path);
|
||||
}
|
||||
|
||||
@@ -467,7 +467,7 @@ mrb_funcall_with_block(mrb_state *mrb, mrb_value self, mrb_sym mid, mrb_int argc
|
||||
c = mrb_class(mrb, self);
|
||||
m = mrb_method_search_vm(mrb, &c, mid);
|
||||
if (MRB_METHOD_UNDEF_P(m)) {
|
||||
mrb_sym missing = mrb_intern_lit(mrb, "method_missing");
|
||||
mrb_sym missing = MRB_SYM(method_missing);
|
||||
mrb_value args = mrb_ary_new_from_values(mrb, argc, argv);
|
||||
m = mrb_method_search_vm(mrb, &c, missing);
|
||||
if (MRB_METHOD_UNDEF_P(m)) {
|
||||
@@ -1364,7 +1364,7 @@ RETRY_TRY_BLOCK:
|
||||
cls = mrb_class(mrb, recv);
|
||||
m = mrb_method_search_vm(mrb, &cls, mid);
|
||||
if (MRB_METHOD_UNDEF_P(m)) {
|
||||
mrb_sym missing = mrb_intern_lit(mrb, "method_missing");
|
||||
mrb_sym missing = MRB_SYM(method_missing);
|
||||
m = mrb_method_search_vm(mrb, &cls, missing);
|
||||
if (MRB_METHOD_UNDEF_P(m) || (missing == mrb->c->ci->mid && mrb_obj_eq(mrb, regs[0], recv))) {
|
||||
mrb_value args = (argc < 0) ? regs[a+1] : mrb_ary_new_from_values(mrb, c, regs+a+1);
|
||||
@@ -1547,7 +1547,7 @@ RETRY_TRY_BLOCK:
|
||||
cls = target_class->super;
|
||||
m = mrb_method_search_vm(mrb, &cls, mid);
|
||||
if (MRB_METHOD_UNDEF_P(m)) {
|
||||
mrb_sym missing = mrb_intern_lit(mrb, "method_missing");
|
||||
mrb_sym missing = MRB_SYM(method_missing);
|
||||
|
||||
if (mid != missing) {
|
||||
cls = mrb_class(mrb, recv);
|
||||
|
||||
Reference in New Issue
Block a user