summaryrefslogtreecommitdiff
path: root/string.c
diff options
context:
space:
mode:
Diffstat (limited to 'string.c')
-rw-r--r--string.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/string.c b/string.c
index 9f7c163a81..d43a6391be 100644
--- a/string.c
+++ b/string.c
@@ -2453,6 +2453,9 @@ rb_check_lockedtmp(VALUE str)
static inline void
str_modifiable(VALUE str)
{
+ if (CHILLED_STRING_P(str)) {
+ CHILLED_STRING_MUTATED(str);
+ }
rb_check_lockedtmp(str);
rb_check_frozen(str);
}
@@ -3053,7 +3056,7 @@ rb_str_freeze(VALUE str)
static VALUE
str_uplus(VALUE str)
{
- if (OBJ_FROZEN(str)) {
+ if (OBJ_FROZEN(str) || CHILLED_STRING_P(str)) {
return rb_str_dup(str);
}
else {