From 577a88161e49698de3a31b31e53ad504d1d19067 Mon Sep 17 00:00:00 2001 From: Yukihiro Matz Matsumoto Date: Mon, 11 Mar 2013 23:57:30 +0900 Subject: restore arena after mrb_define_method() --- src/class.c | 2 ++ 1 file changed, 2 insertions(+) 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 -- cgit v1.2.3