summaryrefslogtreecommitdiffhomepage
path: root/src/hash.c
diff options
context:
space:
mode:
authorYAMAMOTO Masaya <[email protected]>2017-10-11 17:53:17 +0900
committerYAMAMOTO Masaya <[email protected]>2017-10-11 17:58:11 +0900
commitacdc2d1f242f2547ca842be5d62a2b06356b39ea (patch)
tree3479c21be76ce7edde6a5fcacb6f60c1a5698a8a /src/hash.c
parent679dfd75a8aeb26ee4ff0d7c148e1f6e88e39c3d (diff)
downloadmruby-acdc2d1f242f2547ca842be5d62a2b06356b39ea.tar.gz
mruby-acdc2d1f242f2547ca842be5d62a2b06356b39ea.zip
Add MRB_WITHOUT_FLOAT
Diffstat (limited to 'src/hash.c')
-rw-r--r--src/hash.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/hash.c b/src/hash.c
index 53ef2b818..27d481947 100644
--- a/src/hash.c
+++ b/src/hash.c
@@ -12,8 +12,10 @@
#include <mruby/string.h>
#include <mruby/variable.h>
+#ifndef MRB_WITHOUT_FLOAT
/* a function to get hash value of a float number */
mrb_int mrb_float_id(mrb_float f);
+#endif
static inline khint_t
mrb_hash_ht_hash_func(mrb_state *mrb, mrb_value key)
@@ -31,7 +33,9 @@ mrb_hash_ht_hash_func(mrb_state *mrb, mrb_value key)
case MRB_TT_FALSE:
case MRB_TT_SYMBOL:
case MRB_TT_FIXNUM:
+#ifndef MRB_WITHOUT_FLOAT
case MRB_TT_FLOAT:
+#endif
h = (khint_t)mrb_obj_id(key);
break;
@@ -60,12 +64,15 @@ mrb_hash_ht_hash_equal(mrb_state *mrb, mrb_value a, mrb_value b)
switch (mrb_type(b)) {
case MRB_TT_FIXNUM:
return mrb_fixnum(a) == mrb_fixnum(b);
+#ifndef MRB_WITHOUT_FLOAT
case MRB_TT_FLOAT:
return (mrb_float)mrb_fixnum(a) == mrb_float(b);
+#endif
default:
return FALSE;
}
+#ifndef MRB_WITHOUT_FLOAT
case MRB_TT_FLOAT:
switch (mrb_type(b)) {
case MRB_TT_FIXNUM:
@@ -75,6 +82,7 @@ mrb_hash_ht_hash_equal(mrb_state *mrb, mrb_value a, mrb_value b)
default:
return FALSE;
}
+#endif
default:
return mrb_eql(mrb, a, b);