diff options
| author | Masaki Muranaka <[email protected]> | 2012-06-15 12:27:44 +0900 |
|---|---|---|
| committer | Masaki Muranaka <[email protected]> | 2012-06-15 12:27:44 +0900 |
| commit | ccec3da35bb2a6fff9fb58c30645b02692996f8b (patch) | |
| tree | ef6c657fc3bbe86ca56fb971ecf595716f59eaae /src/error.c | |
| parent | 9983e1d77378dd55d0b0380df848a307d4669bff (diff) | |
| download | mruby-ccec3da35bb2a6fff9fb58c30645b02692996f8b.tar.gz mruby-ccec3da35bb2a6fff9fb58c30645b02692996f8b.zip | |
Use return value of vsnprintf() for the string length. It is redundant using strlen().
Diffstat (limited to 'src/error.c')
| -rw-r--r-- | src/error.c | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/src/error.c b/src/error.c index d50c596cc..548527f07 100644 --- a/src/error.c +++ b/src/error.c @@ -177,11 +177,15 @@ mrb_raise(mrb_state *mrb, struct RClass *c, const char *fmt, ...) { va_list args; char buf[256]; + int n; va_start(args, fmt); - vsnprintf(buf, 256, fmt, args); + n = vsnprintf(buf, 256, fmt, args); va_end(args); - mrb_exc_raise(mrb, mrb_exc_new(mrb, c, buf, strlen(buf))); + if (n < 0) { + n = 0; + } + mrb_exc_raise(mrb, mrb_exc_new(mrb, c, buf, n)); } void @@ -190,12 +194,15 @@ mrb_name_error(mrb_state *mrb, mrb_sym id, const char *fmt, ...) mrb_value exc, argv[2]; va_list args; char buf[256]; + int n; va_start(args, fmt); - //argv[0] = mrb_vsprintf(fmt, args); - vsnprintf(buf, 256, fmt, args); - argv[0] = mrb_str_new(mrb, buf, strlen(buf)); + n = vsnprintf(buf, 256, fmt, args); va_end(args); + if (n < 0) { + n = 0; + } + argv[0] = mrb_str_new(mrb, buf, n); argv[1] = mrb_str_new_cstr(mrb, mrb_sym2name(mrb, id)); exc = mrb_class_new_instance(mrb, 2, argv, E_NAME_ERROR); @@ -207,11 +214,15 @@ mrb_sprintf(mrb_state *mrb, const char *fmt, ...) { va_list args; char buf[256]; + int n; va_start(args, fmt); - vsnprintf(buf, 256, fmt, args); + n = vsnprintf(buf, 256, fmt, args); va_end(args); - return mrb_str_new(mrb, buf, strlen(buf)); + if (n < 0) { + n = 0; + } + return mrb_str_new(mrb, buf, n); } void |
