diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-11-04 11:49:25 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-11-04 11:49:25 +0900 |
| commit | de2363a9f0c7d368ee9002f86931d124e644a243 (patch) | |
| tree | 2112928a80786a109ecac4b3ce200f45ac75e2cb /src/etc.c | |
| parent | 388d26d77027feaa3e107abf7209e2681868bbe6 (diff) | |
| parent | 625f9f6fa314872968632c5adbee7fb3823268b8 (diff) | |
| download | mruby-de2363a9f0c7d368ee9002f86931d124e644a243.tar.gz mruby-de2363a9f0c7d368ee9002f86931d124e644a243.zip | |
Merge branch 'mrb_without_float' of https://github.com/pandax381/mruby into pandax381-mrb_without_float
Diffstat (limited to 'src/etc.c')
| -rw-r--r-- | src/etc.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -87,14 +87,20 @@ mrb_obj_to_sym(mrb_state *mrb, mrb_value name) } MRB_API mrb_int +#ifdef MRB_WITHOUT_FLOAT +mrb_fixnum_id(mrb_int f) +#else mrb_float_id(mrb_float f) +#endif { const char *p = (const char*)&f; int len = sizeof(f); uint32_t id = 0; +#ifndef MRB_WITHOUT_FLOAT /* normalize -0.0 to 0.0 */ if (f == 0) f = 0.0; +#endif while (len--) { id = id*65599 + *p; p++; @@ -125,9 +131,13 @@ mrb_obj_id(mrb_value obj) case MRB_TT_SYMBOL: return MakeID(mrb_symbol(obj)); case MRB_TT_FIXNUM: +#ifdef MRB_WITHOUT_FLOAT + return MakeID(mrb_fixnum_id(mrb_fixnum(obj))); +#else return MakeID2(mrb_float_id((mrb_float)mrb_fixnum(obj)), MRB_TT_FLOAT); case MRB_TT_FLOAT: return MakeID(mrb_float_id(mrb_float(obj))); +#endif case MRB_TT_STRING: case MRB_TT_OBJECT: case MRB_TT_CLASS: @@ -148,6 +158,7 @@ mrb_obj_id(mrb_value obj) } #ifdef MRB_WORD_BOXING +#ifndef MRB_WITHOUT_FLOAT MRB_API mrb_value mrb_word_boxing_float_value(mrb_state *mrb, mrb_float f) { @@ -167,6 +178,7 @@ mrb_word_boxing_float_pool(mrb_state *mrb, mrb_float f) nf->f = f; return mrb_obj_value(nf); } +#endif /* MRB_WITHOUT_FLOAT */ MRB_API mrb_value mrb_word_boxing_cptr_value(mrb_state *mrb, void *p) |
