aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--re.c1
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 7e109e70c0..c78ee79e9c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,9 +1,13 @@
+Tue Dec 13 12:23:47 2005 Tanaka Akira <akr@m17n.org>
+
+ * re.c (rb_reg_regcomp): fix a GC problem on x86_64 with
+ gcc 3.3.5 (Debian 1:3.3.5-13).
+
Tue Dec 13 01:44:16 2005 Tanaka Akira <akr@m17n.org>
* array.c (rb_ary_diff): fix a GC problem on IA64 with
gcc 3.3.5 (Debian 1:3.3.5-13).
- When rb_ary_push is called, there was no register
- which contains
+ When rb_ary_push is called, there was no register which contains
`hash' but `&RHASH(hash)->tbl' instead.
Tue Dec 13 00:08:09 2005 Tanaka Akira <akr@m17n.org>
diff --git a/re.c b/re.c
index 18f74fa079..47876d3fcd 100644
--- a/re.c
+++ b/re.c
@@ -1384,6 +1384,7 @@ static VALUE reg_cache;
VALUE
rb_reg_regcomp(VALUE str)
{
+ volatile VALUE save_str = str;
if (reg_cache && RREGEXP(reg_cache)->len == RSTRING(str)->len
&& case_cache == ruby_ignorecase
&& kcode_cache == reg_kcode