Bug #11209 ยป 0001-Fix-String-when-subclassed.patch
| string.c | ||
|---|---|---|
|
enc = rb_enc_check(str1, str2);
|
||
|
RSTRING_GETMEM(str1, ptr1, len1);
|
||
|
RSTRING_GETMEM(str2, ptr2, len2);
|
||
|
str3 = rb_str_new(0, len1+len2);
|
||
|
str3 = rb_str_new_with_class(str1, 0, len1+len2);
|
||
|
ptr3 = RSTRING_PTR(str3);
|
||
|
memcpy(ptr3, ptr1, len1);
|
||
|
memcpy(ptr3+len1, ptr2, len2);
|
||
| test/ruby/test_string.rb | ||
|---|---|---|
|
assert_equal((15..54).to_a.to_a.join, s3)
|
||
|
end
|
||
|
def test_str_plus_subclassed
|
||
|
foo = S2.new("foo")
|
||
|
bar = S2.new("bar")
|
||
|
baz = foo + bar
|
||
|
assert_equal(TestString::S2, baz.class)
|
||
|
end
|
||
|
def test_rb_str_new4
|
||
|
s = "a" * 100
|
||
|
s2 = s[10,90]
|
||