mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
variable.c: merge mrb_vm_const_set to mrb_const_set
Inline vm part to the VM itself.
This commit is contained in:
@@ -171,7 +171,6 @@ void mrb_vm_special_set(mrb_state*, mrb_sym, mrb_value);
|
||||
mrb_value mrb_vm_cv_get(mrb_state*, mrb_sym);
|
||||
void mrb_vm_cv_set(mrb_state*, mrb_sym, mrb_value);
|
||||
mrb_value mrb_vm_const_get(mrb_state*, mrb_sym);
|
||||
void mrb_vm_const_set(mrb_state*, mrb_sym, mrb_value);
|
||||
size_t mrb_obj_iv_tbl_memsize(mrb_value);
|
||||
mrb_value mrb_obj_iv_inspect(mrb_state*, struct RObject*);
|
||||
void mrb_obj_iv_set_force(mrb_state *mrb, struct RObject *obj, mrb_sym sym, mrb_value v);
|
||||
|
||||
+1
-11
@@ -865,17 +865,7 @@ mrb_const_set(mrb_state *mrb, mrb_value mod, mrb_sym sym, mrb_value v)
|
||||
if (mrb_type(v) == MRB_TT_CLASS || mrb_type(v) == MRB_TT_MODULE) {
|
||||
mrb_class_name_class(mrb, mrb_class_ptr(mod), mrb_class_ptr(v), sym);
|
||||
}
|
||||
mrb_iv_set(mrb, mod, sym, v);
|
||||
}
|
||||
|
||||
void
|
||||
mrb_vm_const_set(mrb_state *mrb, mrb_sym sym, mrb_value v)
|
||||
{
|
||||
struct RClass *c;
|
||||
|
||||
c = MRB_PROC_TARGET_CLASS(mrb->c->ci->proc);
|
||||
if (!c) c = mrb->object_class;
|
||||
mrb_obj_iv_set(mrb, (struct RObject*)c, sym, v);
|
||||
mrb_obj_iv_set(mrb, mrb_obj_ptr(mod), sym, v);
|
||||
}
|
||||
|
||||
MRB_API void
|
||||
|
||||
@@ -1642,8 +1642,10 @@ RETRY_TRY_BLOCK:
|
||||
}
|
||||
|
||||
CASE(OP_SETCONST, BB) {
|
||||
mrb_vm_const_set(mrb, irep->syms[b], regs[a]);
|
||||
ci = mrb->c->ci;
|
||||
struct RClass *c = MRB_PROC_TARGET_CLASS(ci->proc);
|
||||
if (!c) c = mrb->object_class;
|
||||
mrb_const_set(mrb, mrb_obj_value(c), irep->syms[b], regs[a]);
|
||||
NEXT;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user