diff options
author | Jean Boussier <[email protected]> | 2025-06-11 14:32:35 +0200 |
---|---|---|
committer | Jean Boussier <[email protected]> | 2025-06-11 16:38:38 +0200 |
commit | 95201299fd7bf0918dfbd8c127ce2b5b33ffa537 () | |
tree | b6659cd0932fa3f0cb71c8cf8c2aba382d86cf6b /ext | |
parent | 4463ac264dc44979ea74bbca3de58ae72d5eea71 (diff) |
Refactor the last references to `rb_shape_t`
The type isn't opaque because Ruby isn't often compiled with LTO, so for optimization purpose it's better to allow as much inlining as possible. However ideally only `shape.c` and `shape.h` should deal with the actual struct, and everything else should just deal with opaque `shape_id_t`.
Notes: Merged: https://.com/ruby/ruby/pull/13586
-rw-r--r-- | ext/objspace/objspace_dump.c | 11 |
1 files changed, 5 insertions, 6 deletions
@@ -792,22 +792,21 @@ shape_id_i(shape_id_t shape_id, void *data) return; } - rb_shape_t *shape = RSHAPE(shape_id); dump_append(dc, "{\"address\":"); - dump_append_ref(dc, (VALUE)shape); dump_append(dc, ", \"type\":\"SHAPE\", \"id\":"); dump_append_sizet(dc, shape_id); - if (shape->type != SHAPE_ROOT) { dump_append(dc, ", \"parent_id\":"); - dump_append_lu(dc, shape->parent_id); } dump_append(dc, ", \"depth\":"); dump_append_sizet(dc, rb_shape_depth(shape_id)); - switch((enum shape_type)shape->type) { case SHAPE_ROOT: dump_append(dc, ", \"shape_type\":\"ROOT\""); break; @@ -815,7 +814,7 @@ shape_id_i(shape_id_t shape_id, void *data) dump_append(dc, ", \"shape_type\":\"IVAR\""); dump_append(dc, ",\"edge_name\":"); - dump_append_id(dc, shape->edge_name); break; case SHAPE_OBJ_ID: |