From 475b868b7236fd8e8824618e8724b587f08fbe9d Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Sat, 15 Jan 2022 18:24:39 +0900 Subject: [PATCH] time.c: remove duplicated UTC condition check. --- mrbgems/mruby-time/src/time.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/mrbgems/mruby-time/src/time.c b/mrbgems/mruby-time/src/time.c index 7e568d572..664ee8ed5 100644 --- a/mrbgems/mruby-time/src/time.c +++ b/mrbgems/mruby-time/src/time.c @@ -476,24 +476,21 @@ time_mktime(mrb_state *mrb, mrb_int ayear, mrb_int amonth, mrb_int aday, nowtime.tm_sec = (int)asec; nowtime.tm_isdst = -1; + time_t (*mk)(struct tm*); if (timezone == MRB_TIMEZONE_UTC) { - nowsecs = timegm(&nowtime); + mk = timegm; } else { - nowsecs = mktime(&nowtime); + mk = mktime; } + nowsecs = (*mk)(&nowtime); if (nowsecs == (time_t)-1) { - nowtime.tm_sec += 1; - if (timezone == MRB_TIMEZONE_UTC) { - nowsecs = timegm(&nowtime); - } - else { - nowsecs = mktime(&nowtime); - } - if (nowsecs != 0) { + nowtime.tm_sec += 1; /* maybe Epoch-1 sec */ + nowsecs = (*mk)(&nowtime); + if (nowsecs != 0) { /* check if Epoch */ mrb_raise(mrb, E_ARGUMENT_ERROR, "Not a valid time"); } - nowsecs = (time_t)-1; + nowsecs = (time_t)-1; /* valid Epoch-1 */ } return time_alloc_time(mrb, nowsecs, ausec, timezone);