From 364c47610f6349bc3059ff6435d856438befec17 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Mon, 27 Jan 2020 14:34:54 +0900 Subject: Fixed backtrace message for top-level blocks; fix #4936 In top-level, `mid` is `NULL`. We used to ignore 'mid` update for `NULL`. --- src/vm.c | 3 +-- test/t/exception.rb | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/vm.c b/src/vm.c index 2ccc03e30..09b0c767e 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1500,8 +1500,7 @@ RETRY_TRY_BLOCK: mrb_sym mid; struct REnv *e = MRB_PROC_ENV(m); - mid = e->mid; - if (mid) ci->mid = mid; + ci->mid = mid = e->mid; if (!e->stack) { e->stack = mrb->c->stack; } diff --git a/test/t/exception.rb b/test/t/exception.rb index a6f69eef6..c9afeb61a 100644 --- a/test/t/exception.rb +++ b/test/t/exception.rb @@ -400,7 +400,7 @@ assert('GC in rescue') do end rescue => exception GC.start - assert_equal("#{__FILE__}:#{line}:in call", + assert_equal("#{__FILE__}:#{line}", exception.backtrace.first) end end @@ -418,7 +418,7 @@ assert('Method call in rescue') do rescue => exception [3].each do end - assert_equal("#{__FILE__}:#{line}:in call", + assert_equal("#{__FILE__}:#{line}", exception.backtrace.first) end end -- cgit v1.2.3