[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]