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

ruby-changes:71677

From: NAKAMURA <ko1@a...>
Date: Thu, 7 Apr 2022 22:53:00 +0900 (JST)
Subject: [ruby-changes:71677] 2d886af0a5 (ruby_2_7): merge revision(s) 6a6227e0168b059c3ed34c9f0ace2e5dc2364221: [Backport #18517]

https://git.ruby-lang.org/ruby.git/commit/?id=2d886af0a5

From 2d886af0a55a99bf3c12ec82c1b7a804bec9d395 Mon Sep 17 00:00:00 2001
From: NAKAMURA Usaku <usa@r...>
Date: Sat, 19 Mar 2022 22:27:18 +0900
Subject: merge revision(s) 6a6227e0168b059c3ed34c9f0ace2e5dc2364221: [Backport
 #18517]

	Shifting zero always results in zero [Bug #18517]

	---
	 numeric.c | 2 ++
	 1 file changed, 2 insertions(+)
---
 numeric.c | 2 ++
 version.h | 2 +-
 2 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/numeric.c b/numeric.c
index 3da0f7f6b0..ea15625697 100644
--- a/numeric.c
+++ b/numeric.c
@@ -4565,6 +4565,7 @@ rb_fix_lshift(VALUE x, VALUE y) https://github.com/ruby/ruby/blob/trunk/numeric.c#L4565
     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);
@@ -4611,6 +4612,7 @@ rb_fix_rshift(VALUE x, VALUE y) https://github.com/ruby/ruby/blob/trunk/numeric.c#L4612
     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);
diff --git a/version.h b/version.h
index 73658c6ec7..db464e84d0 100644
--- a/version.h
+++ b/version.h
@@ -2,7 +2,7 @@ https://github.com/ruby/ruby/blob/trunk/version.h#L2
 # define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR
 #define RUBY_VERSION_TEENY 6
 #define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR
-#define RUBY_PATCHLEVEL 213
+#define RUBY_PATCHLEVEL 214
 
 #define RUBY_RELEASE_YEAR 2022
 #define RUBY_RELEASE_MONTH 3
-- 
cgit v1.2.1


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

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