summaryrefslogtreecommitdiffstats
path: root/eval.c
diff options
context:
space:
mode:
Diffstat (limited to 'eval.c')
-rw-r--r--eval.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/eval.c b/eval.c
index 74489d3a6..6728703bb 100644
--- a/eval.c
+++ b/eval.c
@@ -750,6 +750,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);
/* check if prev_cfp can be accessible */
@@ -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);