From e62d672ef31331efe5ac0aed4064bd9259bed0ea Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Wed, 8 Mar 2023 23:45:32 +0900 Subject: [PATCH] mruby-time/time.c (mrb_to_time_t): support Bigint if defined --- mrbgems/mruby-time/src/time.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/mrbgems/mruby-time/src/time.c b/mrbgems/mruby-time/src/time.c index 261f85198..6b2206db1 100644 --- a/mrbgems/mruby-time/src/time.c +++ b/mrbgems/mruby-time/src/time.c @@ -260,6 +260,27 @@ mrb_to_time_t(mrb_state *mrb, mrb_value obj, time_t *usec) } break; #endif /* MRB_NO_FLOAT */ + +#ifdef MRB_USE_BIGINT + case MRB_TT_BIGINT: + { + if (sizeof(time_t) > sizeof(mrb_int)) { + if (MRB_TIME_T_UINT) { + t = (time_t)mrb_bint_as_uint64(mrb, obj); + } + else { + t = (time_t)mrb_bint_as_int64(mrb, obj); + } + break; + } + else { + mrb_int i = mrb_bint_as_int(mrb, obj); + obj = mrb_int_value(mrb, i); + } + } + /* fall through */ +#endif /* MRB_USE_BIGINT */ + case MRB_TT_INTEGER: { mrb_int i = mrb_integer(obj);