diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-09 02:35:49 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2014-03-09 02:35:49 +0900 |
| commit | 6423011986aca8e71508a8ffe6df823e44c196bd (patch) | |
| tree | 773085ee7a0a3bd3070ea13a798a08612e14a96c /src/class.c | |
| parent | ee57789c724cb8bb86ebeda2dfd2ef585e996f68 (diff) | |
| download | mruby-6423011986aca8e71508a8ffe6df823e44c196bd.tar.gz mruby-6423011986aca8e71508a8ffe6df823e44c196bd.zip | |
remove invocation of strlen() on buffer of strings; with refactoring
Diffstat (limited to 'src/class.c')
| -rw-r--r-- | src/class.c | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/src/class.c b/src/class.c index d880e3627..72e96ece8 100644 --- a/src/class.c +++ b/src/class.c @@ -534,25 +534,12 @@ mrb_get_args(mrb_state *mrb, const char *format, ...) case 'z': { mrb_value ss; - struct RString *s; char **ps; - mrb_int len; ps = va_arg(ap, char**); if (i < argc) { - size_t size_t_len; ss = to_str(mrb, *sp++); - s = mrb_str_ptr(ss); - size_t_len = strlen(RSTRING_PTR(ss)); - mrb_assert(size_t_len <= MRB_INT_MAX); - len = (mrb_int)size_t_len; - if (len < RSTRING_LEN(ss)) { - mrb_raise(mrb, E_ARGUMENT_ERROR, "string contains null byte"); - } - else if (len > RSTRING_LEN(ss)) { - mrb_str_modify(mrb, s); - } - *ps = RSTRING_PTR(ss); + *ps = mrb_string_value_cstr(mrb, &ss); i++; } } |
