diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-01-06 15:40:03 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2020-01-06 15:52:39 +0900 |
| commit | 2532e625edc2457447369e36e2ecf7882d872ef9 (patch) | |
| tree | e772c9336baf8a3589dc0f380a2e3abd8b648b10 /src/load.c | |
| parent | 111045ecada16d3c047b90a26a1ec0af06e5a323 (diff) | |
| download | mruby-2532e625edc2457447369e36e2ecf7882d872ef9.tar.gz mruby-2532e625edc2457447369e36e2ecf7882d872ef9.zip | |
Refactor `mrb_cstr_to_dbl`; ref #4920
Diffstat (limited to 'src/load.c')
| -rw-r--r-- | src/load.c | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/src/load.c b/src/load.c index 4184c4753..e624c52d5 100644 --- a/src/load.c +++ b/src/load.c @@ -42,21 +42,17 @@ offset_crc_body(void) } #ifndef MRB_WITHOUT_FLOAT +double mrb_str_len_to_dbl(mrb_state *mrb, const char *s, size_t len, mrb_bool badcheck); + static double str_to_double(mrb_state *mrb, const char *p, size_t len) { - char buf[64]; - /* `i`, `inf`, `infinity` */ if (len > 0 && p[0] == 'i') return INFINITY; /* `I`, `-inf`, `-infinity` */ if (p[0] == 'I' || (len > 1 && p[0] == '-' && p[1] == 'i')) return -INFINITY; - mrb_assert(len < sizeof(buf)); - strncpy(buf, p, len); - buf[len] = '\0'; - - return mrb_cstr_to_dbl(mrb, buf, TRUE); + return mrb_str_len_to_dbl(mrb, p, len, TRUE); } #endif |
