diff options
Diffstat (limited to 'string.c')
-rw-r--r-- | string.c | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -11630,10 +11630,15 @@ sym_inspect(VALUE sym) } else { rb_encoding *enc = STR_ENC_GET(str); - RSTRING_GETMEM(str, ptr, len); + + VALUE orig_str = str; + RSTRING_GETMEM(orig_str, ptr, len); + str = rb_enc_str_new(0, len + 1, enc); dest = RSTRING_PTR(str); memcpy(dest + 1, ptr, len); + + RB_GC_GUARD(orig_str); } dest[0] = ':'; return str; |