aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-11-11 14:39:07 +0000
committermrkn <mrkn@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-11-11 14:39:07 +0000
commit30bc06d80677e9ec3afae24436138eb49a3888b6 (patch)
tree3d11d90d32da42e87456080ff7283dff886703b8
parentb723644e46fe244bdc6abff436a7958cdd5890f6 (diff)
downloadruby-30bc06d80677e9ec3afae24436138eb49a3888b6.tar.gz
rational.c: optimize rational + integer.
* rational.c (rb_rational_plus): optimize rational + integer. Author: Tadashi Saito <tad.a.digger@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@56705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--rational.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/rational.c b/rational.c
index 3917541c13..0e06eedfd0 100644
--- a/rational.c
+++ b/rational.c
@@ -735,9 +735,9 @@ rb_rational_plus(VALUE self, VALUE other)
{
get_dat1(self);
- return f_addsub(self,
- dat->num, dat->den,
- other, ONE, '+');
+ return f_rational_new_no_reduce2(CLASS_OF(self),
+ rb_int_plus(dat->num, rb_int_mul(other, dat->den)),
+ dat->den);
}
}
else if (RB_TYPE_P(other, T_FLOAT)) {