зеркало из https://github.com/github/ruby.git
parse.y: set encoding
* parse.y (rb_str_dynamic_intern): associate proper encoding with the result symbol. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
e8de850e6d
Коммит
bb1d0d2807
|
@ -747,9 +747,6 @@ rb_enc_get_index(VALUE obj)
|
||||||
obj = rb_id2str(SYM2ID(obj));
|
obj = rb_id2str(SYM2ID(obj));
|
||||||
}
|
}
|
||||||
switch (BUILTIN_TYPE(obj)) {
|
switch (BUILTIN_TYPE(obj)) {
|
||||||
case T_SYMBOL:
|
|
||||||
obj = RSYMBOL(obj)->fstr;
|
|
||||||
/* fall through */
|
|
||||||
as_default:
|
as_default:
|
||||||
default:
|
default:
|
||||||
case T_STRING:
|
case T_STRING:
|
||||||
|
|
2
parse.y
2
parse.y
|
@ -10685,12 +10685,14 @@ rb_str_dynamic_intern(VALUE str)
|
||||||
str = rb_str_dup(str);
|
str = rb_str_dup(str);
|
||||||
rb_enc_associate(str, ascii);
|
rb_enc_associate(str, ascii);
|
||||||
OBJ_FREEZE(str);
|
OBJ_FREEZE(str);
|
||||||
|
enc = ascii;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type = rb_str_symname_type(str, IDSET_ATTRSET_FOR_INTERN);
|
type = rb_str_symname_type(str, IDSET_ATTRSET_FOR_INTERN);
|
||||||
str = rb_fstring(str);
|
str = rb_fstring(str);
|
||||||
dsym = rb_newobj_of(rb_cSymbol, T_SYMBOL);
|
dsym = rb_newobj_of(rb_cSymbol, T_SYMBOL);
|
||||||
|
rb_enc_associate(dsym, enc);
|
||||||
OBJ_FREEZE(dsym);
|
OBJ_FREEZE(dsym);
|
||||||
RSYMBOL(dsym)->fstr = str;
|
RSYMBOL(dsym)->fstr = str;
|
||||||
RSYMBOL(dsym)->type = type;
|
RSYMBOL(dsym)->type = type;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче