From 9bca887ac454770a8d759832853a78a5fc942147 Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 25 May 2017 10:31:48 +0900 Subject: Preserve the current pc before `method_missing()`; fix #3660 --- src/vm.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src') diff --git a/src/vm.c b/src/vm.c index 896be7ad9..354931f37 100644 --- a/src/vm.c +++ b/src/vm.c @@ -1273,6 +1273,7 @@ RETRY_TRY_BLOCK: else { args = mrb_ary_new_from_values(mrb, n, regs+a+1); } + ERR_PC_SET(mrb, pc); mrb_method_missing(mrb, mid, recv, args); } mid = missing; @@ -1460,6 +1461,7 @@ RETRY_TRY_BLOCK: else { args = mrb_ary_new_from_values(mrb, n, regs+a+1); } + ERR_PC_SET(mrb, pc); mrb_method_missing(mrb, mid, recv, args); } mid = missing; @@ -1941,6 +1943,7 @@ RETRY_TRY_BLOCK: else { args = mrb_ary_new_from_values(mrb, n, regs+a+1); } + ERR_PC_SET(mrb, pc); mrb_method_missing(mrb, mid, recv, args); } mid = missing; -- cgit v1.2.3