aboutsummaryrefslogtreecommitdiffstats
path: root/time.c
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-01-13 04:36:45 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2019-01-13 04:36:45 +0000
commit665d9a4331059687e87a6e9c6c1ce9d39b48c35a (patch)
tree12fa580bf95b65a3116ea0afaae549ff065b660b /time.c
parent019c891508334d0437140ac12badbceab86827bd (diff)
downloadruby-665d9a4331059687e87a6e9c6c1ce9d39b48c35a.tar.gz
time.c: separate sign argument
* time.c (vtm_add_offset): separate sign argument to get rid of repeated negations. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@66804 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'time.c')
-rw-r--r--time.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/time.c b/time.c
index 9035a38407..de96990260 100644
--- a/time.c
+++ b/time.c
@@ -1904,20 +1904,16 @@ time_set_utc_offset(VALUE time, VALUE off)
}
static void
-vtm_add_offset(struct vtm *vtm, VALUE off)
+vtm_add_offset(struct vtm *vtm, VALUE off, int sign)
{
- int sign;
VALUE subsec, v;
int sec, min, hour;
int day;
if (lt(off, INT2FIX(0))) {
- sign = -1;
+ sign = -sign;
off = neg(off);
}
- else {
- sign = 1;
- }
divmodv(off, INT2FIX(1), &off, &subsec);
divmodv(off, INT2FIX(60), &off, &v);
sec = NUM2INT(v);
@@ -2338,7 +2334,7 @@ time_init_1(int argc, VALUE *argv, VALUE time)
if (!NIL_P(vtm.utc_offset)) {
VALUE off = vtm.utc_offset;
- vtm_add_offset(&vtm, neg(off));
+ vtm_add_offset(&vtm, off, -1);
vtm.utc_offset = Qnil;
tobj->timew = timegmw(&vtm);
return time_set_utc_offset(time, off);
@@ -3891,7 +3887,7 @@ time_fixoff(VALUE time)
zone = tobj->vtm.zone;
tobj->vtm = vtm;
tobj->vtm.zone = zone;
- vtm_add_offset(&tobj->vtm, off);
+ vtm_add_offset(&tobj->vtm, off, +1);
tobj->tm_got = 1;
TZMODE_SET_FIXOFF(tobj, off);