From 8f9b958f1e269e6e2c58402ae0409a3a99e8bcf4 Mon Sep 17 00:00:00 2001 From: Yukihiro Matsumoto Date: Tue, 19 Jun 2012 12:54:49 +0900 Subject: raise should initialize Exception object --- src/error.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/error.c') diff --git a/src/error.c b/src/error.c index 981b2abab..b2d9a8c8d 100644 --- a/src/error.c +++ b/src/error.c @@ -71,14 +71,14 @@ static mrb_value exc_exception(mrb_state *mrb, mrb_value self) { mrb_value exc; - mrb_value *argv; + mrb_value a; int argc; - mrb_get_args(mrb, "*", &argv, &argc); + argc = mrb_get_args(mrb, "|o", &a); if (argc == 0) return self; - if (argc == 1 && mrb_obj_equal(mrb, self, argv[0])) return self; + if (mrb_obj_equal(mrb, self, a)) return self; exc = mrb_obj_clone(mrb, self); - exc_initialize(mrb, exc); + mrb_iv_set(mrb, exc, mrb_intern(mrb, "mesg"), a); return exc; } @@ -321,7 +321,7 @@ exception_call: // mrb_raise(mrb, E_TYPE_ERROR, "exception class/object expected"); //} if (mrb_respond_to(mrb, argv[0], mrb_intern(mrb, "exception"))) { - mesg = mrb_funcall(mrb, argv[0], "exception", n, argv+1); + mesg = mrb_funcall_argv(mrb, argv[0], "exception", n, argv+1); } else { /* undef */ -- cgit v1.2.3