summaryrefslogtreecommitdiffhomepage
path: root/src/vm.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-12-05 11:43:12 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2017-12-05 11:43:12 +0900
commit4a99f4949e64cf6232b6bae16734016906d42527 (patch)
tree111e264a509de2a2a8f0425f2839188228596504 /src/vm.c
parentcbb6f29875a7534fc325ef73ca0b1a3b3908c2cb (diff)
downloadmruby-4a99f4949e64cf6232b6bae16734016906d42527.tar.gz
mruby-4a99f4949e64cf6232b6bae16734016906d42527.zip
Need to set `ci->proc` when we have `RProc` structure.
Mentioned in https://qiita.com/bamchoh/items/eabebbbb330cb0e0470a
Diffstat (limited to 'src/vm.c')
-rw-r--r--src/vm.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/vm.c b/src/vm.c
index a610b28c5..de2ac983c 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -475,6 +475,9 @@ mrb_funcall_with_block(mrb_state *mrb, mrb_value self, mrb_sym mid, mrb_int argc
int ai = mrb_gc_arena_save(mrb);
ci->acc = CI_ACC_DIRECT;
+ if (MRB_METHOD_PROC_P(m)) {
+ ci->proc = MRB_METHOD_PROC(m);
+ }
val = MRB_METHOD_CFUNC(m)(mrb, self);
mrb->c->stack = mrb->c->ci->stackent;
cipop(mrb);