mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
variable.c: refactor mrb_vm_const_get function.
This commit is contained in:
+3
-4
@@ -803,9 +803,9 @@ mrb_vm_const_get(mrb_state *mrb, mrb_sym sym)
|
||||
struct RClass *c;
|
||||
struct RClass *c2;
|
||||
mrb_value v;
|
||||
const struct RProc *proc;
|
||||
const struct RProc *proc = mrb->c->ci->proc;
|
||||
|
||||
c = MRB_PROC_TARGET_CLASS(mrb->c->ci->proc);
|
||||
c = MRB_PROC_TARGET_CLASS(proc);
|
||||
if (!c) c = mrb->object_class;
|
||||
if (iv_get(mrb, c->iv, sym, &v)) {
|
||||
return v;
|
||||
@@ -821,8 +821,7 @@ mrb_vm_const_get(mrb_state *mrb, mrb_sym sym)
|
||||
c2 = mrb_class_ptr(klass);
|
||||
}
|
||||
if (c2 && (c2->tt == MRB_TT_CLASS || c2->tt == MRB_TT_MODULE)) c = c2;
|
||||
mrb_assert(!MRB_PROC_CFUNC_P(mrb->c->ci->proc));
|
||||
proc = mrb->c->ci->proc;
|
||||
proc = proc->upper;
|
||||
while (proc) {
|
||||
c2 = MRB_PROC_TARGET_CLASS(proc);
|
||||
if (c2 && iv_get(mrb, c2->iv, sym, &v)) {
|
||||
|
||||
Reference in New Issue
Block a user