summaryrefslogtreecommitdiffhomepage
path: root/src/vm.c
diff options
context:
space:
mode:
authorMasaki Muranaka <[email protected]>2013-03-28 17:43:24 +0900
committerMasaki Muranaka <[email protected]>2013-03-28 17:43:24 +0900
commitfa23cb10216bee49b6d494ea41d5d98e71ff26ea (patch)
tree87666f3bf9d1a62dbeadb399daed7f772559e1ce /src/vm.c
parent485111db6ba4355dd961c4949b66318f41b75355 (diff)
downloadmruby-fa23cb10216bee49b6d494ea41d5d98e71ff26ea.tar.gz
mruby-fa23cb10216bee49b6d494ea41d5d98e71ff26ea.zip
Fix argunum_error() to use mrb_format().
Diffstat (limited to 'src/vm.c')
-rw-r--r--src/vm.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/src/vm.c b/src/vm.c
index f067d82b8..336d6476c 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -464,20 +464,19 @@ localjump_error(mrb_state *mrb, localjump_error_kind kind)
static void
argnum_error(mrb_state *mrb, int num)
{
- char buf[256];
- size_t len;
mrb_value exc;
+ mrb_value str;
if (mrb->ci->mid) {
- len = snprintf(buf, sizeof(buf), "'%s': wrong number of arguments (%d for %d)",
- mrb_sym2name(mrb, mrb->ci->mid),
- mrb->ci->argc, num);
+ str = mrb_format(mrb, "'%S': wrong number of arguments (%S for %S)",
+ mrb_sym2str(mrb, mrb->ci->mid),
+ mrb_fixnum_value(mrb->ci->argc), mrb_fixnum_value(num));
}
else {
- len = snprintf(buf, sizeof(buf), "wrong number of arguments (%d for %d)",
- mrb->ci->argc, num);
+ str = mrb_format(mrb, "wrong number of arguments (%S for %S)",
+ mrb_fixnum_value(mrb->ci->argc), mrb_fixnum_value(num));
}
- exc = mrb_exc_new(mrb, E_ARGUMENT_ERROR, buf, len);
+ exc = mrb_exc_new3(mrb, E_ARGUMENT_ERROR, str);
mrb->exc = mrb_obj_ptr(exc);
}