summaryrefslogtreecommitdiffhomepage
path: root/src/error.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/error.c')
-rw-r--r--src/error.c10
1 files changed, 5 insertions, 5 deletions
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 */