aboutsummaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2021-02-09 10:08:30 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2021-02-09 12:59:06 +0900
commita6f5f3cccda381ae332aaa6467f2644611371fb5 (patch)
tree783edc640f763e45bb400cbe3e78f5145ff77c36 /eval.c
parente0c100ec96810b999c704fc73d60255484b63844 (diff)
downloadruby-a6f5f3cccda381ae332aaa6467f2644611371fb5.tar.gz
Also `eclass` loop can raise in `rb_obj_is_kind_of`
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index 56d7c2b81c..2c9e375e25 100644
--- a/eval.c
+++ b/eval.c
@@ -1034,6 +1034,7 @@ rb_vrescue2(VALUE (* b_proc) (VALUE), VALUE data1,
int handle = FALSE;
VALUE eclass;
+ result = Qnil;
while ((eclass = va_arg(args, VALUE)) != 0) {
if (rb_obj_is_kind_of(ec->errinfo, eclass)) {
handle = TRUE;
@@ -1042,7 +1043,6 @@ rb_vrescue2(VALUE (* b_proc) (VALUE), VALUE data1,
}
if (handle) {
- result = Qnil;
state = TAG_NONE;
if (r_proc) {
result = (*r_proc) (data2, ec->errinfo);