summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/etc.c42
-rw-r--r--src/kernel.c2
2 files changed, 20 insertions, 24 deletions
diff --git a/src/etc.c b/src/etc.c
index 11784214a..ad1b18662 100644
--- a/src/etc.c
+++ b/src/etc.c
@@ -145,13 +145,7 @@ mrb_obj_id(mrb_value obj)
}
}
-#if defined(MRB_NAN_BOXING) && defined(MRB_64BIT)
-#define mrb_xxx_boxing_cptr_value mrb_nan_boxing_cptr_value
-#endif
-
#ifdef MRB_WORD_BOXING
-#define mrb_xxx_boxing_cptr_value mrb_word_boxing_cptr_value
-
#ifndef MRB_NO_FLOAT
MRB_API mrb_value
mrb_word_boxing_float_value(mrb_state *mrb, mrb_float f)
@@ -190,23 +184,7 @@ mrb_word_boxing_value_float(mrb_value v)
#endif /* MRB_NO_FLOAT */
MRB_API mrb_value
-mrb_word_boxing_int_value(mrb_state *mrb, mrb_int n)
-{
- if (FIXABLE(n)) return mrb_fixnum_value(n);
- else {
- union mrb_value_ v;
-
- v.p = mrb_obj_alloc(mrb, MRB_TT_INTEGER, mrb->integer_class);
- v.ip->i = n;
- MRB_SET_FROZEN_FLAG(v.ip);
- return v.value;
- }
-}
-#endif /* MRB_WORD_BOXING */
-
-#if defined(MRB_WORD_BOXING) || (defined(MRB_NAN_BOXING) && defined(MRB_64BIT))
-MRB_API mrb_value
-mrb_xxx_boxing_cptr_value(mrb_state *mrb, void *p)
+mrb_word_boxing_cptr_value(mrb_state *mrb, void *p)
{
mrb_value v;
struct RCptr *cptr = MRB_OBJ_ALLOC(mrb, MRB_TT_CPTR, mrb->object_class);
@@ -215,6 +193,24 @@ mrb_xxx_boxing_cptr_value(mrb_state *mrb, void *p)
cptr->p = p;
return v;
}
+#endif /* MRB_WORD_BOXING */
+
+#if defined(MRB_WORD_BOXING) || (defined(MRB_NAN_BOXING) && defined(MRB_INT64))
+MRB_API mrb_value
+mrb_boxing_int_value(mrb_state *mrb, mrb_int n)
+{
+ if (FIXABLE(n)) return mrb_fixnum_value(n);
+ else {
+ mrb_value v;
+ struct RInteger *p;
+
+ p = (struct RInteger*)mrb_obj_alloc(mrb, MRB_TT_INTEGER, mrb->integer_class);
+ p->i = n;
+ MRB_SET_FROZEN_FLAG((struct RBasic*)p);
+ SET_OBJ_VALUE(v, p);
+ return v;
+ }
+}
#endif
#if defined _MSC_VER && _MSC_VER < 1900
diff --git a/src/kernel.c b/src/kernel.c
index ae9709f3c..5ecebabeb 100644
--- a/src/kernel.c
+++ b/src/kernel.c
@@ -97,7 +97,7 @@ mrb_equal_m(mrb_state *mrb, mrb_value self)
mrb_value
mrb_obj_id_m(mrb_state *mrb, mrb_value self)
{
- return mrb_int_value(mrb, mrb_obj_id(self));
+ return mrb_fixnum_value(mrb_obj_id(self));
}
static int