Check the entire name as ruby2_keywords_flag
[Bug #18184]
This commit is contained in:
parent
e2976fd1f6
commit
7c0230b05d
@ -1424,7 +1424,7 @@ ruby2_keywords_flag_check(VALUE sym)
|
||||
long l;
|
||||
RSTRING_GETMEM(sym, p, l);
|
||||
if (l <= 0) return 0;
|
||||
if (name_equal(name_s_ruby2_keywords_flag, rb_strlen_lit(name_s_ruby2_keywords_flag), p, 1)) {
|
||||
if (name_equal(name_s_ruby2_keywords_flag, rb_strlen_lit(name_s_ruby2_keywords_flag), p, l)) {
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
|
@ -806,8 +806,14 @@ class TestMarshal < Test::Unit::TestCase
|
||||
|
||||
def test_marshal_with_ruby2_keywords_hash
|
||||
flagged_hash = ruby2_keywords_hash(key: 42)
|
||||
hash = Marshal.load(Marshal.dump(flagged_hash))
|
||||
data = Marshal.dump(flagged_hash)
|
||||
hash = Marshal.load(data)
|
||||
assert_equal(42, ruby2_keywords_test(*[hash]))
|
||||
|
||||
hash2 = Marshal.load(data.sub!(/\x06K(?=T\z)/, "\x08KEY"))
|
||||
assert_raise(ArgumentError, /\(given 1, expected 0\)/) {
|
||||
ruby2_keywords_test(*[hash2])
|
||||
}
|
||||
end
|
||||
|
||||
def exception_test
|
||||
|
Loading…
x
Reference in New Issue
Block a user