ruby-changes:70782
From: Peter <ko1@a...>
Date: Sat, 8 Jan 2022 04:22:48 +0900 (JST)
Subject: [ruby-changes:70782] d9ef711f29 (master): Improve string info in rb_raw_obj_info
https://git.ruby-lang.org/ruby.git/commit/?id=d9ef711f29 From d9ef711f296afbe2a029961e83a03d023ca29f15 Mon Sep 17 00:00:00 2001 From: Peter Zhu <peter@p...> Date: Fri, 7 Jan 2022 14:15:42 -0500 Subject: Improve string info in rb_raw_obj_info Improve rb_raw_obj_info to output additional into about strings including the length, capacity, and whether or not it is embedded. --- gc.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/gc.c b/gc.c index 2c917e4faab..02f3e0bbb49 100644 --- a/gc.c +++ b/gc.c @@ -13304,8 +13304,15 @@ rb_raw_obj_info(char *buff, const int buff_size, VALUE obj) https://github.com/ruby/ruby/blob/trunk/gc.c#L13304 } 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: { -- cgit v1.2.1 -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/