diff options
Diffstat (limited to 'mrbgems/mruby-object-ext/src')
| -rw-r--r-- | mrbgems/mruby-object-ext/src/object.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/mrbgems/mruby-object-ext/src/object.c b/mrbgems/mruby-object-ext/src/object.c index 8a2325ef9..35a07b584 100644 --- a/mrbgems/mruby-object-ext/src/object.c +++ b/mrbgems/mruby-object-ext/src/object.c @@ -1,6 +1,7 @@ #include <mruby.h> #include <mruby/array.h> #include <mruby/class.h> +#include <mruby/proc.h> /* * call-seq: @@ -66,7 +67,6 @@ mrb_obj_instance_exec(mrb_state *mrb, mrb_value self) mrb_int argc; mrb_value blk; struct RClass *c; - mrb_value args; mrb_get_args(mrb, "*&", &argv, &argc, &blk); @@ -84,9 +84,8 @@ mrb_obj_instance_exec(mrb_state *mrb, mrb_value self) c = mrb_class_ptr(mrb_singleton_class(mrb, self)); break; } - args = mrb_ary_new_from_values(mrb, argc, argv); - argv = RARRAY_PTR(args); - return mrb_yield_with_class(mrb, blk, argc, argv, self, c); + mrb->c->ci->target_class = c; + return mrb_yield_cont(mrb, blk, self, argc, argv); } void |
