* time.c (tm_initialize): allow 7th argument as well as
  Time#initialize, but just ignore.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2018-10-28 12:05:18 +00:00
Родитель c4be18c28b
Коммит d59ad98f6a
1 изменённых файлов: 19 добавлений и 21 удалений

40
time.c
Просмотреть файл

@ -5065,7 +5065,7 @@ tm_from_time(VALUE klass, VALUE time)
/* /*
* call-seq: * call-seq:
* *
* Time::TM.new(year, month, day, hour, min, sec) -> tm * Time::TM.new(year, month=nil, day=nil, hour=nil, min=nil, sec=nil, tz=nil) -> tm
* *
* Creates new Time::TM object. * Creates new Time::TM object.
*/ */
@ -5073,32 +5073,30 @@ tm_from_time(VALUE klass, VALUE time)
static VALUE static VALUE
tm_initialize(int argc, VALUE *argv, VALUE tm) tm_initialize(int argc, VALUE *argv, VALUE tm)
{ {
#if TM_IS_TIME
struct time_object *tobj = DATA_PTR(tm);
struct vtm vtm;
rb_check_arity(argc, 1, 6);
time_arg(argc, argv, &vtm);
tobj->tzmode = TIME_TZMODE_UTC;
tobj->timew = timegmw(&vtm);
tobj->vtm = vtm;
return tm;
#else
int i = 0;
struct vtm vtm; struct vtm vtm;
wideval_t t; wideval_t t;
if (rb_check_arity(argc, 1, 7) > 6) argc = 6;
time_arg(argc, argv, &vtm); time_arg(argc, argv, &vtm);
t = timegmw(&vtm); t = timegmw(&vtm);
RSTRUCT_SET(tm, i++, INT2FIX(vtm.sec)); {
RSTRUCT_SET(tm, i++, INT2FIX(vtm.min)); #if TM_IS_TIME
RSTRUCT_SET(tm, i++, INT2FIX(vtm.hour)); struct time_object *tobj = DATA_PTR(tm);
RSTRUCT_SET(tm, i++, INT2FIX(vtm.mday)); tobj->tzmode = TIME_TZMODE_UTC;
RSTRUCT_SET(tm, i++, INT2FIX(vtm.mon)); tobj->timew = t;
RSTRUCT_SET(tm, i++, vtm.year); tobj->vtm = vtm;
RSTRUCT_SET(tm, i++, w2v(rb_time_unmagnify(t))); #else
return tm; int i = 0;
RSTRUCT_SET(tm, i++, INT2FIX(vtm.sec));
RSTRUCT_SET(tm, i++, INT2FIX(vtm.min));
RSTRUCT_SET(tm, i++, INT2FIX(vtm.hour));
RSTRUCT_SET(tm, i++, INT2FIX(vtm.mday));
RSTRUCT_SET(tm, i++, INT2FIX(vtm.mon));
RSTRUCT_SET(tm, i++, vtm.year);
RSTRUCT_SET(tm, i++, w2v(rb_time_unmagnify(t)));
#endif #endif
}
return tm;
} }
/* call-seq: /* call-seq: