From 12c76564dd6f31546dfc4f64b2be2435bb5bd938 Mon Sep 17 00:00:00 2001 From: mrkn Date: Sat, 12 Nov 2016 06:58:35 +0000 Subject: rational.c: optimize Rational#to_i * rational.c (nurat_truncate): optimize Rational#to_i. Author: Tadashi Saito git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- rational.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'rational.c') diff --git a/rational.c b/rational.c index d9363a2e5f..72a323353d 100644 --- a/rational.c +++ b/rational.c @@ -1243,9 +1243,9 @@ static VALUE nurat_truncate(VALUE self) { get_dat1(self); - if (f_negative_p(dat->num)) - return f_negate(f_idiv(f_negate(dat->num), dat->den)); - return f_idiv(dat->num, dat->den); + if (INT_NEGATIVE_P(dat->num)) + return rb_int_uminus(rb_int_idiv(rb_int_uminus(dat->num), dat->den)); + return rb_int_idiv(dat->num, dat->den); } static VALUE -- cgit v1.2.3