summaryrefslogtreecommitdiff
path: root/yjit/src
diff options
context:
space:
mode:
authorJean Boussier <[email protected]>2025-04-21 16:16:07 +0900
committerJean Boussier <[email protected]>2025-05-08 07:58:05 +0200
commitf48e45d1e9c4412d5f3ee49241d0b9359651ce7c (patch)
tree88e53f6ef5e926b87f6ab620ca6ff23bf15380f3 /yjit/src
parentd34c15054708c84e9d3305ede0752820b42ac498 (diff)
Move `object_id` in object fields.
And get rid of the `obj_to_id_tbl` It's no longer needed, the `object_id` is now stored inline in the object alongside instance variables. We still need the inverse table in case `_id2ref` is invoked, but we lazily build it by walking the heap if that happens. The `object_id` concern is also no longer a GC implementation concern, but a generic implementation. Co-Authored-By: Matt Valentine-House <[email protected]>
Notes
Notes: Merged: https://github.com/ruby/ruby/pull/13159
Diffstat (limited to 'yjit/src')
-rw-r--r--yjit/src/cruby_bindings.inc.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/yjit/src/cruby_bindings.inc.rs b/yjit/src/cruby_bindings.inc.rs
index be6e179855..5682948dd7 100644
--- a/yjit/src/cruby_bindings.inc.rs
+++ b/yjit/src/cruby_bindings.inc.rs
@@ -227,7 +227,7 @@ pub const RUBY_FL_FINALIZE: ruby_fl_type = 128;
pub const RUBY_FL_TAINT: ruby_fl_type = 0;
pub const RUBY_FL_SHAREABLE: ruby_fl_type = 256;
pub const RUBY_FL_UNTRUSTED: ruby_fl_type = 0;
-pub const RUBY_FL_SEEN_OBJ_ID: ruby_fl_type = 512;
+pub const RUBY_FL_UNUSED9: ruby_fl_type = 512;
pub const RUBY_FL_EXIVAR: ruby_fl_type = 1024;
pub const RUBY_FL_FREEZE: ruby_fl_type = 2048;
pub const RUBY_FL_USER0: ruby_fl_type = 4096;
@@ -651,6 +651,7 @@ pub struct rb_shape {
pub capacity: attr_index_t,
pub type_: u8,
pub heap_index: u8,
+ pub flags: u8,
pub parent_id: shape_id_t,
pub ancestor_index: *mut redblack_node_t,
}