diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-11-04 12:33:07 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-11-04 12:33:07 +0900 |
| commit | d6cb4f9cf2027eb20f67238aa6c051448602e7e6 (patch) | |
| tree | c025d53534298097aadc3d7699de964bd8a7225f /src/etc.c | |
| parent | 388d26d77027feaa3e107abf7209e2681868bbe6 (diff) | |
| parent | a751f7f196e35cf85ac6f5c0d855edeb68b2bf53 (diff) | |
| download | mruby-d6cb4f9cf2027eb20f67238aa6c051448602e7e6.tar.gz mruby-d6cb4f9cf2027eb20f67238aa6c051448602e7e6.zip | |
Merge branch '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) |
