From 20c5662da763b68e41bddb6b94c7e6206d9aa9a1 Mon Sep 17 00:00:00 2001 From: ko1 Date: Sun, 20 Dec 2015 02:14:57 +0000 Subject: * proc.c (rb_mod_define_method): should check Symbol or not. [Bug #11850] * test/ruby/test_method.rb: add a test. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- proc.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'proc.c') diff --git a/proc.c b/proc.c index cd083ec2bf..6d153c1b3e 100644 --- a/proc.c +++ b/proc.c @@ -1774,8 +1774,13 @@ rb_mod_define_method(int argc, VALUE *argv, VALUE mod) rb_thread_t *th = GET_THREAD(); rb_block_t *block = rb_vm_control_frame_block_ptr(th->cfp); if (!block) rb_raise(rb_eArgError, proc_without_block); + body = block->proc; - if (!body) { + + if (SYMBOL_P(body)) { + body = rb_sym_to_proc(body); + } + else if (!body) { body = rb_vm_make_proc_lambda(th, block, rb_cProc, TRUE); } #endif -- cgit v1.2.3