summaryrefslogtreecommitdiffhomepage
path: root/src/class.c
diff options
context:
space:
mode:
authorYukihiro Matz Matsumoto <[email protected]>2013-03-11 23:57:30 +0900
committerYukihiro Matz Matsumoto <[email protected]>2013-03-11 23:57:30 +0900
commit577a88161e49698de3a31b31e53ad504d1d19067 (patch)
treef38993d695115fb24e3d3861b912227d549bfeab /src/class.c
parent34fe9d0156a65c8b19ee4671c29133c80a94bdc5 (diff)
downloadmruby-577a88161e49698de3a31b31e53ad504d1d19067.tar.gz
mruby-577a88161e49698de3a31b31e53ad504d1d19067.zip
restore arena after mrb_define_method()
Diffstat (limited to 'src/class.c')
-rw-r--r--src/class.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/class.c b/src/class.c
index a3defc2ae..0ba702919 100644
--- a/src/class.c
+++ b/src/class.c
@@ -293,10 +293,12 @@ void
mrb_define_method_id(mrb_state *mrb, struct RClass *c, mrb_sym mid, mrb_func_t func, int aspec)
{
struct RProc *p;
+ int ai = mrb_gc_arena_save(mrb);
p = mrb_proc_new_cfunc(mrb, func);
p->target_class = c;
mrb_define_method_raw(mrb, c, mid, p);
+ mrb_gc_arena_restore(mrb, ai);
}
void