summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--compile.c4
-rw-r--r--version.h2
3 files changed, 8 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index bc2f4b34eb..3b107fbc75 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Fri Feb 18 00:28:39 2011 CHIKANAGA Tomoyuki <nagachika00@gmail.com>
+
+ * compile.c (get_exception_sym2type): guard temporary object from GC.
+
Tue May 3 18:23:57 2011 Yuki Sonoda (Yugui) <yugui@yugui.jp>
* test/date/test_date.rb (TestDate#test_coerce):
diff --git a/compile.c b/compile.c
index 1f27174689..76dc76a161 100644
--- a/compile.c
+++ b/compile.c
@@ -5152,6 +5152,7 @@ get_exception_sym2type(VALUE sym)
{
#undef rb_intern
#define rb_intern(str) rb_intern_const(str)
+ VALUE sym_inspect;
static VALUE symRescue, symEnsure, symRetry;
static VALUE symBreak, symRedo, symNext;
@@ -5170,8 +5171,9 @@ get_exception_sym2type(VALUE sym)
if (sym == symBreak) return CATCH_TYPE_BREAK;
if (sym == symRedo) return CATCH_TYPE_REDO;
if (sym == symNext) return CATCH_TYPE_NEXT;
+ sym_inspect = rb_inspect(sym);
rb_raise(rb_eSyntaxError, "invalid exception symbol: %s",
- RSTRING_PTR(rb_inspect(sym)));
+ RSTRING_PTR(RB_GC_GUARD(sym_inspect)));
return 0;
}
diff --git a/version.h b/version.h
index ab9e96dfaf..b2c563fcf8 100644
--- a/version.h
+++ b/version.h
@@ -1,5 +1,5 @@
#define RUBY_VERSION "1.9.2"
-#define RUBY_PATCHLEVEL 201
+#define RUBY_PATCHLEVEL 202
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 9
#define RUBY_VERSION_TEENY 1