[前][次][番号順一覧][スレッド一覧]

ruby-changes:71029

From: Nobuyoshi <ko1@a...>
Date: Thu, 27 Jan 2022 14:00:51 +0900 (JST)
Subject: [ruby-changes:71029] 6a6227e016 (master): Shifting zero always results in zero [Bug #18517]

https://git.ruby-lang.org/ruby.git/commit/?id=6a6227e016

From 6a6227e0168b059c3ed34c9f0ace2e5dc2364221 Mon Sep 17 00:00:00 2001
From: Nobuyoshi Nakada <nobu@r...>
Date: Thu, 27 Jan 2022 00:53:12 +0900
Subject: Shifting zero always results in zero [Bug #18517]

---
 numeric.c | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/numeric.c b/numeric.c
index 3165556a7f7..20ad13d4c20 100644
--- a/numeric.c
+++ b/numeric.c
@@ -5073,6 +5073,7 @@ rb_fix_lshift(VALUE x, VALUE y) https://github.com/ruby/ruby/blob/trunk/numeric.c#L5073
     long val, width;
 
     val = NUM2LONG(x);
+    if (!val) return (rb_to_int(y), INT2FIX(0));
     if (!FIXNUM_P(y))
 	return rb_big_lshift(rb_int2big(val), y);
     width = FIX2LONG(y);
@@ -5127,6 +5128,7 @@ rb_fix_rshift(VALUE x, VALUE y) https://github.com/ruby/ruby/blob/trunk/numeric.c#L5128
     long i, val;
 
     val = FIX2LONG(x);
+    if (!val) return (rb_to_int(y), INT2FIX(0));
     if (!FIXNUM_P(y))
 	return rb_big_rshift(rb_int2big(val), y);
     i = FIX2LONG(y);
-- 
cgit v1.2.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]