summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-04 00:05:30 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2008-09-04 00:05:30 +0000
commitb94060024db12a343b1e2331e17939a6a806ce96 (patch)
tree5b1e65de8988a4f6ab15613cb97198f1fc3caf15
parentdead0a4c5118a0f0836305a151ee49073fe70ad2 (diff)
* file.c (rb_find_file): fix GC problem on Debian GNU/Linux (IA64)
with gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21). There is no register/memory to contain load_path. A register (r35) contains &RARRAY_PTR(load_path), (char*)load_path + 32. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19112 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--ChangeLog7
-rw-r--r--file.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index b73052fcb0..821012d9e6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Thu Sep 4 08:59:29 2008 Tanaka Akira <akr@fsij.org>
+
+ * file.c (rb_find_file): fix GC problem on Debian GNU/Linux (IA64)
+ with gcc (GCC) 4.1.2 20061115 (prerelease) (Debian 4.1.1-21).
+ There is no register/memory to contain load_path. A register (r35)
+ contains &RARRAY_PTR(load_path), (char*)load_path + 32.
+
Thu Sep 4 03:10:05 2008 Tanaka Akira <akr@fsij.org>
* include/ruby/io.h (rb_io_t): new fields: encs.ecopts and
diff --git a/file.c b/file.c
index 55b0f617d5..33327a6f96 100644
--- a/file.c
+++ b/file.c
@@ -4595,7 +4595,7 @@ rb_find_file(VALUE path)
rb_raise(rb_eSecurityError, "loading from non-absolute path %s", f);
}
- load_path = rb_get_load_path();
+ RB_GC_GUARD(load_path) = rb_get_load_path();
if (load_path) {
long i;