summaryrefslogtreecommitdiffhomepage
path: root/src/vm.c
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-05-13 09:13:33 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-05-13 09:13:33 +0900
commitb4657182da44febeccd5f22af636bceda776122f (patch)
tree14553befe49eb23a0118014da900b6fc347f2922 /src/vm.c
parentbcbf078ebd4c3346982d0dc8e125da12b61a04bc (diff)
downloadmruby-b4657182da44febeccd5f22af636bceda776122f.tar.gz
mruby-b4657182da44febeccd5f22af636bceda776122f.zip
convert &arg using to_proc; fix #2242
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 2c6fbf087..4f257d462 100644
--- a/src/vm.c
+++ b/src/vm.c
@@ -1286,6 +1286,9 @@ RETRY_TRY_BLOCK:
int len = m1 + o + r + m2;
mrb_value *blk = &argv[argc < 0 ? 1 : argc];
+ if (!mrb_nil_p(*blk) && mrb_type(*blk) != MRB_TT_PROC) {
+ *blk = mrb_convert_type(mrb, *blk, MRB_TT_PROC, "Proc", "to_proc");
+ }
if (argc < 0) {
struct RArray *ary = mrb_ary_ptr(regs[1]);
argv = ary->ptr;