From 4fd40f77e57a1e38c05c8a8c58cc5f68ea3c1525 Mon Sep 17 00:00:00 2001 From: ko1 Date: Sat, 27 Dec 2008 07:22:01 +0000 Subject: * eval.c (rb_frame_callee, rb_frame_caller): rb_frame_callee() should return method id on current frame. add rb_frame_caller() to get method id on parent frame. Bug #884 [ruby-dev:37446] * eval.c (rb_f_method_name): use rb_frame_caller() instead of rb_frame_callee(). git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@21093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- eval.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'eval.c') diff --git a/eval.c b/eval.c index 74489d3a6..6728703bb 100644 --- a/eval.c +++ b/eval.c @@ -749,6 +749,12 @@ rb_frame_this_func(void) ID rb_frame_callee(void) +{ + return frame_func_id(GET_THREAD()->cfp); +} + +static ID +rb_frame_caller(void) { rb_thread_t *th = GET_THREAD(); rb_control_frame_t *prev_cfp = RUBY_VM_PREVIOUS_CONTROL_FRAME(th->cfp); @@ -1106,7 +1112,7 @@ rb_f_local_variables(void) static VALUE rb_f_method_name(void) { - ID fname = rb_frame_callee(); + ID fname = rb_frame_caller(); /* need *caller* ID */ if (fname) { return ID2SYM(fname); -- cgit