From 47465ab1ccf48d2c905dbcf3b676e30b61cc41ca Mon Sep 17 00:00:00 2001 From: Kenta Murata Date: Fri, 17 Jan 2020 10:41:03 +0900 Subject: rb_rational_raw: make a denominator always positive --- rational.c | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'rational.c') diff --git a/rational.c b/rational.c index f483c6d68b..0261c6940a 100644 --- a/rational.c +++ b/rational.c @@ -1927,6 +1927,10 @@ rb_gcdlcm(VALUE self, VALUE other) VALUE rb_rational_raw(VALUE x, VALUE y) { + if (INT_NEGATIVE_P(y)) { + x = rb_int_uminus(x); + y = rb_int_uminus(y); + } return nurat_s_new_internal(rb_cRational, x, y); } -- cgit v1.2.1