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>
|
||||
|
||||
* 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;
|
||||
enc_register_at(i & ENC_INDEX_MASK, rb_enc_name(enc), base);
|
||||
((rb_raw_encoding *)enc)->ruby_encoding_index = i;
|
||||
i &= ENC_INDEX_MASK;
|
||||
}
|
||||
else {
|
||||
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));
|
||||
}
|
||||
|
||||
VALUE
|
||||
bug_str_encoding_index(VALUE self, VALUE str)
|
||||
{
|
||||
int idx = rb_enc_get_index(str);
|
||||
return INT2NUM(idx);
|
||||
}
|
||||
|
||||
void
|
||||
Init_enc_associate(VALUE klass)
|
||||
{
|
||||
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::UTF_8)}
|
||||
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
|
||||
|
|
Loading…
Add table
Reference in a new issue