aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog4
-rw-r--r--gc.c2
-rw-r--r--internal.h2
-rw-r--r--parse.y8
4 files changed, 11 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index d9626f1b80..6710fa7b91 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+Mon Jul 7 12:40:59 2014 Koichi Sasada <ko1@atdot.net>
+
+ * parse.y: need to use updated (re-created) symbols.
+
Mon Jul 7 11:02:55 2014 NARUSE, Yui <naruse@ruby-lang.org>
* tool/mkconfig.rb: remove not to require rbconfig/obsolete.rb.
diff --git a/gc.c b/gc.c
index fd84749dd5..a4f5c355e7 100644
--- a/gc.c
+++ b/gc.c
@@ -204,7 +204,7 @@ static ruby_gc_params_t gc_params = {
* 4: show all references
*/
#ifndef RGENGC_CHECK_MODE
-#define RGENGC_CHECK_MODE 0
+#define RGENGC_CHECK_MODE 3
#endif
/* RGENGC_PROFILE
diff --git a/internal.h b/internal.h
index 1546b219e8..45b9eff0db 100644
--- a/internal.h
+++ b/internal.h
@@ -419,6 +419,8 @@ struct RSymbol {
};
#define RSYMBOL(obj) (R_CAST(RSymbol)(obj))
+#define SYMBOL_PINNED FL_USER1
+#define SYMBOL_PINNED_P(sym) FL_TEST((sym), SYMBOL_PINNED)
struct RFloat {
struct RBasic basic;
diff --git a/parse.y b/parse.y
index 35e38bbd30..9af1982216 100644
--- a/parse.y
+++ b/parse.y
@@ -10503,7 +10503,7 @@ lookup_str_id(st_data_t str, st_data_t *data)
}
id = (ID)*data;
if (ID_DYNAMIC_SYM_P(id)) {
- rb_pin_dynamic_symbol((VALUE)id);
+ *data = (st_data_t)rb_pin_dynamic_symbol((VALUE)id);
}
return TRUE;
}
@@ -10532,7 +10532,7 @@ rb_intern3(const char *name, long len, rb_encoding *enc)
id = intern_cstr_without_pindown(name, len, enc);
if (ID_DYNAMIC_SYM_P(id)) {
- rb_pin_dynamic_symbol((VALUE)id);
+ id = rb_pin_dynamic_symbol((VALUE)id);
}
return id;
@@ -10974,7 +10974,7 @@ rb_check_id(volatile VALUE *namep)
id = rb_check_id_without_pindown((VALUE *)namep);
if (ID_DYNAMIC_SYM_P(id)) {
- rb_pin_dynamic_symbol((VALUE)id);
+ id = rb_pin_dynamic_symbol((VALUE)id);
}
return id;
@@ -10987,7 +10987,7 @@ rb_check_id_cstr(const char *ptr, long len, rb_encoding *enc)
id = rb_check_id_cstr_without_pindown(ptr, len, enc);
if (ID_DYNAMIC_SYM_P(id)) {
- rb_pin_dynamic_symbol((VALUE)id);
+ id = rb_pin_dynamic_symbol((VALUE)id);
}
return id;