Additional fix and tests for r53851

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2016-02-17 10:15:28 +00:00
parent c00d51c739
commit d092fc5398
2 changed files with 14 additions and 3 deletions

View file

@ -1383,6 +1383,7 @@ rb_str_init(int argc, VALUE *argv, VALUE str)
vcapa = kwargs[1];
if (vcapa != Qundef && !NIL_P(vcapa)) {
long capa = NUM2LONG(vcapa);
str_discard(str);
if (capa < STR_BUF_MIN_SIZE) {
capa = STR_BUF_MIN_SIZE;
}
@ -1405,6 +1406,7 @@ rb_str_init(int argc, VALUE *argv, VALUE str)
}
else if (n == 1) {
StringValue(orig);
str_discard(str);
str_replace(str, orig);
}
if (enc != Qundef && !NIL_P(enc)) {
@ -1414,9 +1416,7 @@ rb_str_init(int argc, VALUE *argv, VALUE str)
}
else if (n == 1) {
StringValue(orig);
if (OBJ_FROZEN(str)) {
rb_error_frozen_object(str);
}
str_discard(str);
str_replace(str, orig);
}
return str;