diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-01-13 04:36:45 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2019-01-13 04:36:45 +0000 |
commit | 665d9a4331059687e87a6e9c6c1ce9d39b48c35a (patch) | |
tree | 12fa580bf95b65a3116ea0afaae549ff065b660b /time.c | |
parent | 019c891508334d0437140ac12badbceab86827bd (diff) | |
download | ruby-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.c | 12 |
1 files changed, 4 insertions, 8 deletions
@@ -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); |