From 12e012ed5d9ea6be4e9729cd3fbd05081f71afea Mon Sep 17 00:00:00 2001 From: matz Date: Mon, 10 Dec 2007 05:34:50 +0000 Subject: * eval.c (rb_f_public_send): rename invoke_method to public_send. it now invokes public method only no matter how it's called. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@14173 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- eval.c | 22 +++++++--------------- 1 file changed, 7 insertions(+), 15 deletions(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index 6cfd503e6..e7d144e83 100644 --- a/eval.c +++ b/eval.c @@ -1509,27 +1509,19 @@ rb_f_send(int argc, VALUE *argv, VALUE recv) /* * call-seq: - * obj.invoke_method(symbol [, args...]) => obj + * obj.public_send(symbol [, args...]) => obj * * Invokes the method identified by _symbol_, passing it any - * arguments specified. Unlike send, invoke_method calls public - * methods only, unless it's invoked in a function call style. + * arguments specified. Unlike send, public_send calls public + * methods only. * - * 1.invoke_method(:puts, "hello") # causes NoMethodError + * 1.public_send(:puts, "hello") # causes NoMethodError */ VALUE -rb_invoke_method(int argc, VALUE *argv, VALUE recv) +rb_f_public_send(int argc, VALUE *argv, VALUE recv) { - int rb_vm_cfunc_funcall_p(rb_control_frame_t *); - int scope = NOEX_PUBLIC; - rb_thread_t *th = GET_THREAD(); - - if (rb_vm_cfunc_funcall_p(th->cfp)) { - scope = NOEX_NOSUPER | NOEX_PRIVATE; - } - - return send_internal(argc, argv, recv, scope); + return send_internal(argc, argv, recv, NOEX_PUBLIC); } VALUE @@ -2760,7 +2752,7 @@ Init_eval(void) rb_define_method(rb_cBasicObject, "__send__", rb_f_send, -1); rb_define_method(rb_mKernel, "send", rb_f_send, -1); - rb_define_method(rb_mKernel, "invoke_method", rb_invoke_method, -1); + rb_define_method(rb_mKernel, "public_send", rb_f_public_send, -1); rb_define_method(rb_mKernel, "instance_eval", rb_obj_instance_eval, -1); rb_define_method(rb_mKernel, "instance_exec", rb_obj_instance_exec, -1); -- cgit