diff options
author | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-03-26 06:34:35 +0000 |
---|---|---|
committer | nobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2014-03-26 06:34:35 +0000 |
commit | 33b8663f1b7aef381f6e845a128c71becfbbecde (patch) | |
tree | e3fbf7fc7c3ce822bca3e210f6ce2ae47f3cdd31 /parse.y | |
parent | ad8ed59ab9d33820d06f6f75f05a3674ce34d585 (diff) | |
download | ruby-33b8663f1b7aef381f6e845a128c71becfbbecde.tar.gz |
parse.y: guard dup string
* parse.y (rb_str_dynamic_intern): prevent a string which may be
duplicated, from GC.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r-- | parse.y | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -10667,10 +10667,9 @@ rb_gc_free_dsymbol(VALUE ptr) } VALUE -rb_str_dynamic_intern(VALUE s) +rb_str_dynamic_intern(VALUE str) { #if USE_SYMBOL_GC - VALUE str = RB_GC_GUARD(s); rb_encoding *enc, *ascii; VALUE dsym; ID id, type; @@ -10702,11 +10701,12 @@ rb_str_dynamic_intern(VALUE s) if (RUBY_DTRACE_SYMBOL_CREATE_ENABLED()) { RUBY_DTRACE_SYMBOL_CREATE(RSTRING_PTR(str), rb_sourcefile(), rb_sourceline()); + RB_GC_GUARD(str); } return dsym; #else - return rb_str_intern(s); + return rb_str_intern(str); #endif } |