summaryrefslogtreecommitdiff
path: root/gc.c
diff options
context:
space:
mode:
Diffstat (limited to 'gc.c')
-rw-r--r--gc.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/gc.c b/gc.c
index 2c917e4faa..02f3e0bbb4 100644
--- a/gc.c
+++ b/gc.c
@@ -13304,8 +13304,15 @@ rb_raw_obj_info(char *buff, const int buff_size, VALUE obj)
}
break;
case T_STRING: {
- if (STR_SHARED_P(obj)) APPENDF((BUFF_ARGS, " [shared] "));
- APPENDF((BUFF_ARGS, "%.*s", str_len_no_raise(obj), RSTRING_PTR(obj)));
+ if (STR_SHARED_P(obj)) {
+ APPENDF((BUFF_ARGS, " [shared] len: %ld", RSTRING_LEN(obj)));
+ }
+ else {
+ if (STR_EMBED_P(obj)) APPENDF((BUFF_ARGS, " [embed]"));
+
+ APPENDF((BUFF_ARGS, " len: %ld, capa: %ld", RSTRING_LEN(obj), rb_str_capacity(obj)));
+ }
+ APPENDF((BUFF_ARGS, " \"%.*s\"", str_len_no_raise(obj), RSTRING_PTR(obj)));
break;
}
case T_SYMBOL: {