Skip to content
Permalink
Browse files
Make String#replace to check equality before modifying flags.
ref #3588
  • Loading branch information
matz committed Apr 5, 2017
1 parent a7b0ab3 commit 5e79bc9377f9be27b04c07a533525ad75086a5af
Showing 1 changed file with 1 addition and 1 deletion.
@@ -520,9 +520,9 @@ str_replace(mrb_state *mrb, struct RString *s1, struct RString *s2)
long len;

check_frozen(mrb, s1);
if (s1 == s2) return mrb_obj_value(s1);
s1->flags &= ~MRB_STR_NO_UTF;
s1->flags |= s2->flags&MRB_STR_NO_UTF;
if (s1 == s2) return mrb_obj_value(s1);
len = RSTR_LEN(s2);
if (RSTR_SHARED_P(s1)) {
str_decref(mrb, s1->as.heap.aux.shared);

0 comments on commit 5e79bc9

Please sign in to comment.