Slide 54
Slide 54 text
VALUE *const saved_sp = th__->cfp->sp; \
th__->cfp->sp = curr_sp; \
expr; \
(th__->cfp--)->sp = saved_sp; \
} while (0)
static VALUE
m_core_define_method(VALUE self, VALUE sym, VALUE iseqval)
{
REWIND_CFP({
vm_define_method(GET_THREAD(), Qnil, SYM2ID(sym), iseqval, FALSE);
});
return sym;
}
static VALUE
m_core_define_singleton_method(VALUE self, VALUE cbase, VALUE sym, VALUE iseqval)
{
REWIND_CFP({
vm_define_method(GET_THREAD(), cbase, SYM2ID(sym), iseqval, TRUE);
});
return sym;
}
static VALUE
m_core_set_method_alias(VALUE self, VALUE cbase, VALUE sym1, VALUE sym2)
{
REWIND_CFP({
rb_alias(cbase, SYM2ID(sym1), SYM2ID(sym2));