diff --git a/string.c b/string.c index 83c4780983..3cfe3adcac 100644 --- a/string.c +++ b/string.c @@ -1511,6 +1511,7 @@ str_duplicate(VALUE klass, VALUE str) ; VALUE flags = FL_TEST_RAW(str, flag_mask); VALUE dup = str_alloc(klass); + int encidx = 0; MEMCPY(RSTRING(dup)->as.ary, RSTRING(str)->as.ary, char, embed_size); if (flags & STR_NOEMBED) { @@ -1530,7 +1531,12 @@ str_duplicate(VALUE klass, VALUE str) char, embed_size); } } + if ((flags & ENCODING_MASK) == (ENCODING_INLINE_MAX<