summaryrefslogtreecommitdiff
path: root/parse.y
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-03-26 06:34:31 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-03-26 06:34:31 +0000
commit9a848c5f4a7930b88e28fd4650322690f9c210e6 (patch)
treeb3c64b61635ba0a987a13a180833a13d3e03eea4 /parse.y
parente70b61d0104da0d4add791a7f2074fdff9511de0 (diff)
parse.y: no dup US-ASCII string
* parse.y (rb_str_dynamic_intern): no needs to associate encoding if it is US-ASCII. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y7
1 files changed, 4 insertions, 3 deletions
diff --git a/parse.y b/parse.y
index f545af90e5..83af313306 100644
--- a/parse.y
+++ b/parse.y
@@ -10672,7 +10672,7 @@ rb_str_dynamic_intern(VALUE s)
#if USE_SYMBOL_GC
VALUE str = RB_GC_GUARD(s);
VALUE dup;
- rb_encoding *enc;
+ rb_encoding *enc, *ascii;
VALUE dsym;
ID id, type;
@@ -10682,9 +10682,10 @@ rb_str_dynamic_intern(VALUE s)
dup = rb_str_dup(str);
enc = rb_enc_get(str);
- if (rb_enc_asciicompat(enc)) {
+ ascii = rb_usascii_encoding();
+ if (enc != ascii) {
if (sym_check_asciionly(str)) {
- rb_enc_associate(dup, rb_usascii_encoding());
+ rb_enc_associate(dup, ascii);
}
}