summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--parse.y3
2 files changed, 9 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 925fb581c5..9303fc1048 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Wed Nov 20 17:34:13 2013 Koichi Sasada <ko1@atdot.net>
+
+ * parse.y (rb_gc_mark_symbols): set global_symbols.minor_marked only
+ when full_mark is 0.
+ rb_gc_mark_symbols() (with full_mark == 1) can be called by other
+ than GC (such as rb_objspace_reachable_objects_from_root()).
+
Wed Nov 20 11:46:38 2013 NARUSE, Yui <naruse@ruby-lang.org>
* ext/json: merge JSON 1.8.1.
diff --git a/parse.y b/parse.y
index ba5a8154a2..8207ad7133 100644
--- a/parse.y
+++ b/parse.y
@@ -10155,7 +10155,8 @@ rb_gc_mark_symbols(int full_mark)
rb_mark_tbl(global_symbols.id_str);
rb_gc_mark_locations(global_symbols.op_sym,
global_symbols.op_sym + numberof(global_symbols.op_sym));
- global_symbols.minor_marked = 1;
+
+ if (!full_mark) global_symbols.minor_marked = 1;
}
}
#endif /* !RIPPER */