summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-28 09:41:34 +0000
committeryugui <yugui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-12-28 09:41:34 +0000
commitc7239a7e32bc59bf4c6a20cd5111605a18cf8ccc (patch)
tree9403ec337e40413d3fd508d1c48d5d45b90864f5
parent0c0804cf268933a6edec3f869da297f9c92b90e3 (diff)
merges r21093 from trunk into ruby_1_9_1.
* 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: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21123 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog10
-rw-r--r--eval.c8
2 files changed, 17 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index b834f46cdb..082655d488 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+Sat Dec 27 16:18:02 2008 Koichi Sasada <ko1@atdot.net>
+
+ * 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().
+
Sat Dec 27 15:28:12 2008 Tanaka Akira <akr@fsij.org>
* transcode.c (make_econv_exception): show source and destination
diff --git a/eval.c b/eval.c
index 74489d3a65..6728703bbf 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);