summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-10 03:00:56 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-05-10 03:00:56 +0000
commit332529d45ac100ffaa1e31ec4c498a70dc5bf143 (patch)
tree167d596857792de16e2bd26f0c80152e4ef18036
parent7d82d98d56250b27f586e4ad12f895e1e098333b (diff)
* vm.c (env_mark): mark env->block.self. prevent SEGV when GC occur
in prepare_iseq_build with gcc version 3.4.6 [FreeBSD] 20060305 on FreeBSD/amd64. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog6
-rw-r--r--vm.c1
2 files changed, 7 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 591bafa7d2..9ea3a2ca63 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Sat May 10 11:36:20 2008 Tanaka Akira <akr@fsij.org>
+
+ * vm.c (env_mark): mark env->block.self. prevent SEGV when GC occur
+ in prepare_iseq_build with gcc version 3.4.6 [FreeBSD] 20060305 on
+ FreeBSD/amd64.
+
Fri May 9 19:16:00 2008 Yukihiro Matsumoto <matz@ruby-lang.org>
* thread.c (timeofday): use monotonic clock. based on a patch
diff --git a/vm.c b/vm.c
index e3ad6260c1..58eabf37ac 100644
--- a/vm.c
+++ b/vm.c
@@ -122,6 +122,7 @@ env_mark(void *ptr)
RUBY_GC_INFO("env->prev_envval\n");
RUBY_MARK_UNLESS_NULL(env->prev_envval);
+ RUBY_MARK_UNLESS_NULL(env->block.self);
RUBY_MARK_UNLESS_NULL(env->block.proc);
if (env->block.iseq) {