From fdd92750fe7e65150b067bc5179e813e7b5e2312 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 2 Mar 2017 10:56:23 +0900 Subject: Create NoMethodError instance using `mrb_obj_new()`. --- src/error.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/error.c') diff --git a/src/error.c b/src/error.c index 3fa18fcb3..931361763 100644 --- a/src/error.c +++ b/src/error.c @@ -519,12 +519,15 @@ MRB_API mrb_noreturn void mrb_no_method_error(mrb_state *mrb, mrb_sym id, mrb_value args, char const* fmt, ...) { mrb_value exc; + mrb_value argv[3]; va_list ap; va_start(ap, fmt); - exc = mrb_funcall(mrb, mrb_obj_value(E_NOMETHOD_ERROR), "new", 3, - mrb_vformat(mrb, fmt, ap), mrb_symbol_value(id), args); + argv[0] = mrb_vformat(mrb, fmt, ap); + argv[1] = mrb_symbol_value(id); + argv[2] = args; va_end(ap); + exc = mrb_obj_new(mrb, E_NOMETHOD_ERROR, 3, argv); mrb_exc_raise(mrb, exc); } -- cgit v1.2.3