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
This commit is contained in:
nobu 2019-01-13 04:36:45 +00:00
parent 019c891508
commit 665d9a4331

12
time.c
View File

@ -1904,20 +1904,16 @@ time_set_utc_offset(VALUE time, VALUE off)
} }
static void 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; VALUE subsec, v;
int sec, min, hour; int sec, min, hour;
int day; int day;
if (lt(off, INT2FIX(0))) { if (lt(off, INT2FIX(0))) {
sign = -1; sign = -sign;
off = neg(off); off = neg(off);
} }
else {
sign = 1;
}
divmodv(off, INT2FIX(1), &off, &subsec); divmodv(off, INT2FIX(1), &off, &subsec);
divmodv(off, INT2FIX(60), &off, &v); divmodv(off, INT2FIX(60), &off, &v);
sec = NUM2INT(v); sec = NUM2INT(v);
@ -2338,7 +2334,7 @@ time_init_1(int argc, VALUE *argv, VALUE time)
if (!NIL_P(vtm.utc_offset)) { if (!NIL_P(vtm.utc_offset)) {
VALUE off = vtm.utc_offset; VALUE off = vtm.utc_offset;
vtm_add_offset(&vtm, neg(off)); vtm_add_offset(&vtm, off, -1);
vtm.utc_offset = Qnil; vtm.utc_offset = Qnil;
tobj->timew = timegmw(&vtm); tobj->timew = timegmw(&vtm);
return time_set_utc_offset(time, off); return time_set_utc_offset(time, off);
@ -3891,7 +3887,7 @@ time_fixoff(VALUE time)
zone = tobj->vtm.zone; zone = tobj->vtm.zone;
tobj->vtm = vtm; tobj->vtm = vtm;
tobj->vtm.zone = zone; tobj->vtm.zone = zone;
vtm_add_offset(&tobj->vtm, off); vtm_add_offset(&tobj->vtm, off, +1);
tobj->tm_got = 1; tobj->tm_got = 1;
TZMODE_SET_FIXOFF(tobj, off); TZMODE_SET_FIXOFF(tobj, off);