summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-04 19:12:52 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2007-02-04 19:12:52 +0000
commit9f62fce28ee0cbc095b8b0aab0d55b8c88841f26 (patch)
tree005e4eec64df8bff6830e144d18c54f57cccc1b0
parentecce8e25947f8bbd587a13acf088c3460563e5ae (diff)
downloadruby-9f62fce28ee0cbc095b8b0aab0d55b8c88841f26.tar.gz
ruby-9f62fce28ee0cbc095b8b0aab0d55b8c88841f26.tar.xz
ruby-9f62fce28ee0cbc095b8b0aab0d55b8c88841f26.zip
* eval.c (rb_frame_callee): check if prev_cfp can be accessible.
a patch from Yoshinori Sano <yoshinori.sano at gmail.com> in [ruby-dev:30252]. solves [ruby-dev:30200] and [ruby-core:9856]. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@11628 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--eval.c8
-rw-r--r--version.h6
3 files changed, 16 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog
index b62c36882..06e48d57d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Mon Feb 5 04:09:48 2007 Yukihiro Matsumoto <matz@ruby-lang.org>
+
+ * eval.c (rb_frame_callee): check if prev_cfp can be accessible.
+ a patch from Yoshinori Sano <yoshinori.sano at gmail.com> in
+ [ruby-dev:30252]. solves [ruby-dev:30200] and [ruby-core:9856].
+
Sun Feb 4 20:34:41 2007 Kouhei Sutou <kou@cozmixng.org>
* test/rss/rss-assertions.rb: removed needless code for backward
diff --git a/eval.c b/eval.c
index 639649616..e8e2e7061 100644
--- a/eval.c
+++ b/eval.c
@@ -1879,7 +1879,13 @@ rb_frame_this_func(void)
ID
rb_frame_callee(void)
{
- return frame_func_id(GET_THREAD()->cfp + 1);
+ yarv_thread_t *th = GET_THREAD();
+ yarv_control_frame_t *prev_cfp = YARV_PREVIOUS_CONTROL_FRAME(th->cfp);
+ /* check if prev_cfp can be accessible */
+ if ((void *)(th->stack + th->stack_size) == (void *)(prev_cfp)) {
+ return 0;
+ }
+ return frame_func_id(prev_cfp);
}
void
diff --git a/version.h b/version.h
index 872dea143..99b18b9c9 100644
--- a/version.h
+++ b/version.h
@@ -1,7 +1,7 @@
#define RUBY_VERSION "1.9.0"
-#define RUBY_RELEASE_DATE "2007-02-04"
+#define RUBY_RELEASE_DATE "2007-02-05"
#define RUBY_VERSION_CODE 190
-#define RUBY_RELEASE_CODE 20070204
+#define RUBY_RELEASE_CODE 20070205
#define RUBY_PATCHLEVEL 0
#define RUBY_VERSION_MAJOR 1
@@ -9,7 +9,7 @@
#define RUBY_VERSION_TEENY 0
#define RUBY_RELEASE_YEAR 2007
#define RUBY_RELEASE_MONTH 2
-#define RUBY_RELEASE_DAY 4
+#define RUBY_RELEASE_DAY 5
RUBY_EXTERN const char ruby_version[];
RUBY_EXTERN const char ruby_release_date[];