diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2018-05-01 17:21:01 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2018-05-01 17:21:01 +0900 |
| commit | 028e34d3452acd1eb5602b78ff5c52f4dbb8a1eb (patch) | |
| tree | 44c40aeb8b0f1e69f1ed818405f780b12330953f | |
| parent | 2a38eb9325e32b0b4aadf3fcf88843a515b00ca9 (diff) | |
| download | mruby-028e34d3452acd1eb5602b78ff5c52f4dbb8a1eb.tar.gz mruby-028e34d3452acd1eb5602b78ff5c52f4dbb8a1eb.zip | |
Update `MRB_FLO_TO_STR_FMT` to "%.16g"; fix #4016
| -rw-r--r-- | mrbgems/mruby-compiler/core/codegen.c | 12 | ||||
| -rw-r--r-- | src/numeric.c | 4 |
2 files changed, 11 insertions, 5 deletions
diff --git a/mrbgems/mruby-compiler/core/codegen.c b/mrbgems/mruby-compiler/core/codegen.c index b9451fb88..f71de9b4b 100644 --- a/mrbgems/mruby-compiler/core/codegen.c +++ b/mrbgems/mruby-compiler/core/codegen.c @@ -3049,8 +3049,8 @@ loop_pop(codegen_scope *s, int val) if (val) push(); } -MRB_API struct RProc* -mrb_generate_code(mrb_state *mrb, parser_state *p) +static struct RProc* +generate_code(mrb_state *mrb, parser_state *p, int val) { codegen_scope *scope = scope_new(mrb, 0, 0); struct RProc *proc; @@ -3067,7 +3067,7 @@ mrb_generate_code(mrb_state *mrb, parser_state *p) MRB_TRY(&scope->jmp) { mrb->jmp = &scope->jmp; /* prepare irep */ - codegen(scope, p->tree, NOVAL); + codegen(scope, p->tree, val); proc = mrb_proc_new(mrb, scope->irep); mrb_irep_decref(mrb, scope->irep); mrb_pool_close(scope->mpool); @@ -3086,3 +3086,9 @@ mrb_generate_code(mrb_state *mrb, parser_state *p) } MRB_END_EXC(&scope->jmp); } + +MRB_API struct RProc* +mrb_generate_code(mrb_state *mrb, parser_state *p) +{ + return generate_code(mrb, p, VAL); +} diff --git a/src/numeric.c b/src/numeric.c index b898fd0b5..4e5fc394e 100644 --- a/src/numeric.c +++ b/src/numeric.c @@ -23,9 +23,9 @@ #define floor(f) floorf(f) #define ceil(f) ceilf(f) #define fmod(x,y) fmodf(x,y) -#define MRB_FLO_TO_STR_FMT "%.7g" +#define MRB_FLO_TO_STR_FMT "%.8g" #else -#define MRB_FLO_TO_STR_FMT "%.14g" +#define MRB_FLO_TO_STR_FMT "%.16g" #endif #endif |
