summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--gc.c3
2 files changed, 7 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 98976d4d10..8cc623d8c9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Wed Feb 5 11:46:42 2014 Koichi Sasada <ko1@atdot.net>
+
+ * gc.c (gc_mark_children): STR_ASSOC is no longer available.
+ Reported by @nagachika.
+ http://d.hatena.ne.jp/nagachika/20140204
+
Wed Feb 5 11:27:22 2014 Koichi Sasada <ko1@atdot.net>
* string.c (rb_str_new_frozen): refactoring code.
diff --git a/gc.c b/gc.c
index 8bafb724a1..db32c3705e 100644
--- a/gc.c
+++ b/gc.c
@@ -3866,8 +3866,7 @@ gc_mark_children(rb_objspace_t *objspace, VALUE ptr)
goto again;
case T_STRING:
-#define STR_ASSOC FL_USER3 /* copied from string.c */
- if (FL_TEST(obj, RSTRING_NOEMBED) && FL_ANY(obj, ELTS_SHARED|STR_ASSOC)) {
+ if (STR_SHARED_P(obj)) {
ptr = obj->as.string.as.heap.aux.shared;
goto again;
}