summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-01-07 09:08:19 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2005-01-07 09:08:19 +0000
commitb9f527fd6d2b7bafc10afa32458257242096794e (patch)
tree143e443cdd72d23cb106197166fe40388306a992
parent32d3f688ec3490035daba780a1e03f1310a3c43e (diff)
* gc.c (mark_locations_array): avoid core dump with -O3.
[ruby-dev:25424] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog5
-rw-r--r--gc.c6
2 files changed, 9 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index a54445c2d8..b98e67d650 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri Jan 7 18:03:35 2005 Tanaka Akira <akr@m17n.org>
+
+ * gc.c (mark_locations_array): avoid core dump with -O3.
+ [ruby-dev:25424]
+
Thu Jan 6 20:31:07 2005 NAKAMURA Usaku <usa@ruby-lang.org>
* ext/zlib/zlib.c (zstream_end): should return value. (backported
diff --git a/gc.c b/gc.c
index 90774177e6..c221773df9 100644
--- a/gc.c
+++ b/gc.c
@@ -619,9 +619,11 @@ mark_locations_array(x, n)
register VALUE *x;
register long n;
{
+ VALUE v;
while (n--) {
- if (is_pointer_to_heap((void *)*x)) {
- gc_mark(*x, 0);
+ v = *x;
+ if (is_pointer_to_heap((void *)v)) {
+ gc_mark(v, 0);
}
x++;
}