mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
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 <matt@eightbitraptor.com>
This commit is contained in:
parent
d34c150547
commit
f48e45d1e9
Notes:
git
2025-05-08 05:58:19 +00:00
23 changed files with 1140 additions and 560 deletions
3
yjit/src/cruby_bindings.inc.rs
generated
3
yjit/src/cruby_bindings.inc.rs
generated
|
@ -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,
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue