summaryrefslogtreecommitdiff
path: root/range.c
diff options
context:
space:
mode:
Diffstat (limited to 'range.c')
-rw-r--r--range.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/range.c b/range.c
index bbb24124bf..971c596a26 100644
--- a/range.c
+++ b/range.c
@@ -256,8 +256,10 @@ range_to_s(range)
str = rb_obj_as_string(rb_ivar_get(range, id_beg));
str2 = rb_obj_as_string(rb_ivar_get(range, id_end));
+ str = rb_str_dup(str);
rb_str_cat(str, "...", EXCL(range)?3:2);
- rb_str_cat(str, RSTRING(str2)->ptr, RSTRING(str2)->len);
+ rb_str_append(str, str2);
+ OBJ_INFECT(str, str2);
return str;
}
@@ -270,8 +272,10 @@ range_inspect(range)
str = rb_inspect(rb_ivar_get(range, id_beg));
str2 = rb_inspect(rb_ivar_get(range, id_end));
+ str = rb_str_dup(str);
rb_str_cat(str, "...", EXCL(range)?3:2);
- rb_str_cat(str, RSTRING(str2)->ptr, RSTRING(str2)->len);
+ rb_str_append(str, str2);
+ OBJ_INFECT(str, str2);
return str;
}