summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-11-09 15:12:02 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-11-10 17:42:18 +0900
commit83bdc2f00c4565a091d88399e5a315a96f6afed6 (patch)
tree70c27707e918014d242383e1689d0d2e85da1b75
parentcc33d07f46559bfd11098c6b39c7c59faa892af9 (diff)
Simplify default values of `Time.at` [Bug #18293]
-rw-r--r--time.c6
-rw-r--r--timev.rb4
2 files changed, 5 insertions, 5 deletions
diff --git a/time.c b/time.c
index 6fa4047e29..9ecc09347c 100644
--- a/time.c
+++ b/time.c
@@ -2678,13 +2678,13 @@ get_scale(VALUE unit)
}
static VALUE
-time_s_at(rb_execution_context_t *ec, VALUE klass, VALUE time, VALUE subsec, VALUE unit, VALUE zone, VALUE nosubsec, VALUE nounit)
+time_s_at(rb_execution_context_t *ec, VALUE klass, VALUE time, VALUE subsec, VALUE unit, VALUE zone)
{
VALUE t;
wideval_t timew;
- if (!RTEST(nosubsec)) {
- int scale = !RTEST(nounit) ? get_scale(unit) : 1000000;
+ if (!NIL_P(subsec)) {
+ int scale = get_scale(unit);
time = num_exact(time);
t = num_exact(subsec);
timew = wadd(rb_time_magnify(v2w(time)), wmulquoll(v2w(t), TIME_SCALE, scale));
diff --git a/timev.rb b/timev.rb
index 1be675df35..b73d8c8cc0 100644
--- a/timev.rb
+++ b/timev.rb
@@ -267,8 +267,8 @@ class Time
# :include: doc/time/nsec.rdoc
# :include: doc/time/in.rdoc
#
- def self.at(time, subsec = (nosubsec = true), unit = (nounit = true), in: nil)
- __builtin.time_s_at(time, subsec, unit, __builtin.arg!(:in), nosubsec, nounit)
+ def self.at(time, subsec = nil, unit = :microsecond, in: nil)
+ __builtin.time_s_at(time, subsec, unit, __builtin.arg!(:in))
end
# Returns a new \Time object based the on given arguments.