mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
encoding.c: drop dummy encoding flag
* encoding.c (enc_autoload): drop dummy encoding flag from the loaded encoding index. this flag is used only in this source. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
e262b29ed0
commit
28c42b4c25
4 changed files with 26 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
||||||
|
Wed Jul 15 16:55:04 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
|
||||||
|
|
||||||
|
* encoding.c (enc_autoload): drop dummy encoding flag from
|
||||||
|
the loaded encoding index. this flag is used only in this
|
||||||
|
source.
|
||||||
|
|
||||||
Wed Jul 15 14:39:29 2015 Koichi Sasada <ko1@atdot.net>
|
Wed Jul 15 14:39:29 2015 Koichi Sasada <ko1@atdot.net>
|
||||||
|
|
||||||
* vm.c (vm_make_env_each): add comments about env layout.
|
* vm.c (vm_make_env_each): add comments about env layout.
|
||||||
|
|
|
@ -677,6 +677,7 @@ enc_autoload(rb_encoding *enc)
|
||||||
i = enc->ruby_encoding_index;
|
i = enc->ruby_encoding_index;
|
||||||
enc_register_at(i & ENC_INDEX_MASK, rb_enc_name(enc), base);
|
enc_register_at(i & ENC_INDEX_MASK, rb_enc_name(enc), base);
|
||||||
((rb_raw_encoding *)enc)->ruby_encoding_index = i;
|
((rb_raw_encoding *)enc)->ruby_encoding_index = i;
|
||||||
|
i &= ENC_INDEX_MASK;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
i = load_encoding(rb_enc_name(enc));
|
i = load_encoding(rb_enc_name(enc));
|
||||||
|
|
|
@ -7,8 +7,16 @@ bug_str_enc_associate(VALUE str, VALUE enc)
|
||||||
return rb_enc_associate(str, rb_to_encoding(enc));
|
return rb_enc_associate(str, rb_to_encoding(enc));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
VALUE
|
||||||
|
bug_str_encoding_index(VALUE self, VALUE str)
|
||||||
|
{
|
||||||
|
int idx = rb_enc_get_index(str);
|
||||||
|
return INT2NUM(idx);
|
||||||
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
Init_enc_associate(VALUE klass)
|
Init_enc_associate(VALUE klass)
|
||||||
{
|
{
|
||||||
rb_define_method(klass, "associate_encoding!", bug_str_enc_associate, 1);
|
rb_define_method(klass, "associate_encoding!", bug_str_enc_associate, 1);
|
||||||
|
rb_define_singleton_method(klass, "encoding_index", bug_str_encoding_index, 1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,4 +9,15 @@ class Test_StrEncAssociate < Test::Unit::TestCase
|
||||||
assert_raise(RuntimeError) {s.associate_encoding!(Encoding::US_ASCII)}
|
assert_raise(RuntimeError) {s.associate_encoding!(Encoding::US_ASCII)}
|
||||||
assert_raise(RuntimeError) {s.associate_encoding!(Encoding::UTF_8)}
|
assert_raise(RuntimeError) {s.associate_encoding!(Encoding::UTF_8)}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Encoding.list.select(&:dummy?).each do |enc|
|
||||||
|
enc = enc.name.tr('-', '_')
|
||||||
|
define_method("test_dummy_encoding_index_#{enc}") do
|
||||||
|
assert_separately(["-r-test-/string", "-", enc], <<-"end;") #do
|
||||||
|
enc = Encoding.const_get(ARGV[0])
|
||||||
|
index = Bug::String.encoding_index(enc)
|
||||||
|
assert(index < 0xffff, "<%#x> expected but was\n<%#x>" % [index & 0xffff, index])
|
||||||
|
end;
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue