mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* parse.y (rb_str_dynamic_intern): set mark bit if dynamic symbol
is before sweeping. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
f265ce708d
commit
f6686b5132
2 changed files with 12 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
Tue Apr 1 08:58:39 2014 Kazuki Tsujimoto <kazuki@callcc.net>
|
||||
|
||||
* parse.y (rb_str_dynamic_intern): set mark bit if dynamic symbol
|
||||
is before sweeping.
|
||||
|
||||
Tue Apr 1 07:37:00 2014 NARUSE, Yui <naruse@ruby-lang.org>
|
||||
|
||||
* addr2line.c (fill_lines): use dynsym, which is used for dynamic
|
||||
|
|
8
parse.y
8
parse.y
|
@ -10705,7 +10705,13 @@ rb_str_dynamic_intern(VALUE str)
|
|||
ID id, type;
|
||||
|
||||
if (st_lookup(global_symbols.sym_id, str, &id)) {
|
||||
return ID2SYM(id);
|
||||
VALUE sym = ID2SYM(id);
|
||||
if (!STATIC_SYM_P(sym)) {
|
||||
/* because of lazy sweep, dynamic symbol may be unmarked already and swept
|
||||
* at next time */
|
||||
rb_gc_resurrect(sym);
|
||||
}
|
||||
return sym;
|
||||
}
|
||||
|
||||
enc = rb_enc_get(str);
|
||||
|
|
Loading…
Add table
Reference in a new issue