From 4e064fb0fdc67ab0d3984dc323a334d5728e86ac Mon Sep 17 00:00:00 2001 From: ko1 Date: Wed, 20 Nov 2013 08:40:56 +0000 Subject: [PATCH] * 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()). git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43734 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 7 +++++++ parse.y | 3 ++- 2 files changed, 9 insertions(+), 1 deletion(-) 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 + + * 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 * 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 */