b8524a
From 428791543be9e13af9426970f5796f3157dd30a0 Mon Sep 17 00:00:00 2001
b8524a
From: nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>
b8524a
Date: Tue, 9 Dec 2014 01:16:27 +0000
b8524a
Subject: [PATCH] thread.c: get rid of invalid ID symbol
b8524a
b8524a
* eval.c (rb_frame_last_func): return the most recent frame method
b8524a
  name.
b8524a
* thread.c (recursive_list_access): use the last method name,
b8524a
  instead of the current method name which can be unset in some
b8524a
  cases, not to use a symbol by the invalid ID.
b8524a
  [ruby-core:66742] [Bug #10579]
b8524a
b8524a
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
b8524a
---
b8524a
 ChangeLog                     | 10 ++++++++++
b8524a
 eval.c                        | 13 +++++++++++++
b8524a
 test/ruby/test_objectspace.rb |  7 +++++++
b8524a
 thread.c                      |  5 ++++-
b8524a
 4 files changed, 34 insertions(+), 1 deletion(-)
b8524a
b8524a
diff --git a/thread.c b/thread.c
b8524a
index 25cc214..360c6cb 100644
b8524a
--- a/thread.c
b8524a
+++ b/thread.c
b8524a
@@ -4671,6 +4671,8 @@ threadptr_recursive_hash_set(rb_thread_t *th, VALUE hash)
b8524a
 /* variables for recursive traversals */
b8524a
 static ID recursive_key;
b8524a
 
b8524a
+ID rb_frame_last_func(void);
b8524a
+
b8524a
 /*
b8524a
  * Returns the current "recursive list" used to detect recursion.
b8524a
  * This list is a hash table, unique for the current thread and for