summaryrefslogtreecommitdiffhomepage
path: root/src/vm.c
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-06-23 13:51:50 +0900
committerYukihiro Matsumoto <[email protected]>2012-06-23 13:51:50 +0900
commitf045e646751bfe0f399aae59746befa6384b96aa (patch)
treef14b8e5b4525fbba488a7e1120a61d48b155da2d /src/vm.c
parent1fa63930fd072847d24ffe9c20a57109c41387ec (diff)
downloadmruby-f045e646751bfe0f399aae59746befa6384b96aa.tar.gz
mruby-f045e646751bfe0f399aae59746befa6384b96aa.zip
reduce calling mrb_str_new_cstr() to avoid strlen(); #301
Diffstat (limited to 'src/vm.c')
-rw-r--r--src/vm.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/vm.c b/src/vm.c
index 04392891f..daba0acc6 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -292,10 +292,11 @@ static void
localjump_error(mrb_state *mrb, const char *kind)
{
char buf[256];
+ int len;
mrb_value exc;
- snprintf(buf, 256, "unexpected %s", kind);
- exc = mrb_exc_new(mrb, E_LOCALJUMP_ERROR, buf, strlen(buf));
+ len = snprintf(buf, 256, "unexpected %s", kind);
+ exc = mrb_exc_new(mrb, E_LOCALJUMP_ERROR, buf, len);
mrb->exc = (struct RObject*)mrb_object(exc);
}
@@ -303,18 +304,19 @@ static void
argnum_error(mrb_state *mrb, int num)
{
char buf[256];
+ int len;
mrb_value exc;
if (mrb->ci->mid) {
- snprintf(buf, 256, "'%s': wrong number of arguments (%d for %d)",
- mrb_sym2name(mrb, mrb->ci->mid),
- mrb->ci->argc, num);
+ len = snprintf(buf, 256, "'%s': wrong number of arguments (%d for %d)",
+ mrb_sym2name(mrb, mrb->ci->mid),
+ mrb->ci->argc, num);
}
else {
- snprintf(buf, 256, "wrong number of arguments (%d for %d)",
- mrb->ci->argc, num);
+ len = snprintf(buf, 256, "wrong number of arguments (%d for %d)",
+ mrb->ci->argc, num);
}
- exc = mrb_exc_new(mrb, E_ARGUMENT_ERROR, buf, strlen(buf));
+ exc = mrb_exc_new(mrb, E_ARGUMENT_ERROR, buf, len);
mrb->exc = (struct RObject*)mrb_object(exc);
}