From cdf45438f03379292e71f5c16e7b2fe221b8b272 Mon Sep 17 00:00:00 2001 From: dearblue Date: Thu, 16 Jul 2020 23:11:30 +0900 Subject: Fixed shift width for `MRB_ENV_SET_BIDX()` ref c07f24cd1 and close #5035 --- include/mruby/proc.h | 2 +- test/t/kernel.rb | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/include/mruby/proc.h b/include/mruby/proc.h index ef5357d5d..12013c3ae 100644 --- a/include/mruby/proc.h +++ b/include/mruby/proc.h @@ -34,7 +34,7 @@ struct REnv { #define MRB_ENV_HEAP_P(e) ((e)->flags & MRB_ENV_HEAPED) #define MRB_ENV_ONSTACK_P(e) (((e)->flags & MRB_ENV_CLOSED) == 0) #define MRB_ENV_BIDX(e) (((e)->flags >> 8) & 0xff) -#define MRB_ENV_SET_BIDX(e,idx) ((e)->flags = (((e)->flags & ~(0xff<<8))|((unsigned int)(idx) & 0xff)<<10)) +#define MRB_ENV_SET_BIDX(e,idx) ((e)->flags = (((e)->flags & ~(0xff<<8))|((unsigned int)(idx) & 0xff)<<8)) void mrb_env_unshare(mrb_state*, struct REnv*); diff --git a/test/t/kernel.rb b/test/t/kernel.rb index b7291a000..606150147 100644 --- a/test/t/kernel.rb +++ b/test/t/kernel.rb @@ -116,6 +116,13 @@ assert('Kernel#block_given?', '15.3.1.3.6') do "block" end end + + def bg_try_in_block + -> { block_given? }[] + end + + assert_false bg_try_in_block + assert_true bg_try_in_block{} end assert('Kernel#class', '15.3.1.3.7') do -- cgit v1.2.3