From ad63b668e22e21c352b852f3119ae98a7acf99f1 Mon Sep 17 00:00:00 2001 From: Jemma Issroff Date: Mon, 3 Oct 2022 11:14:32 -0400 Subject: Revert "Revert "This commit implements the Object Shapes technique in CRuby."" This reverts commit 9a6803c90b817f70389cae10d60b50ad752da48f. --- vm_core.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'vm_core.h') diff --git a/vm_core.h b/vm_core.h index e11838a59a..4dd873c1f8 100644 --- a/vm_core.h +++ b/vm_core.h @@ -99,6 +99,7 @@ extern int ruby_assert_critical_section_entered; #include "ruby/st.h" #include "ruby_atomic.h" #include "vm_opts.h" +#include "shape.h" #include "ruby/thread_native.h" @@ -272,7 +273,9 @@ struct iseq_inline_constant_cache { }; struct iseq_inline_iv_cache_entry { - struct rb_iv_index_tbl_entry *entry; + shape_id_t source_shape_id; + shape_id_t dest_shape_id; + attr_index_t attr_index; }; struct iseq_inline_cvar_cache_entry { @@ -687,6 +690,12 @@ typedef struct rb_vm_struct { VALUE mark_object_ary; const VALUE special_exceptions[ruby_special_error_count]; + /* object shapes */ + rb_shape_t *shape_list; + rb_shape_t *root_shape; + rb_shape_t *frozen_root_shape; + shape_id_t next_shape_id; + /* load */ VALUE top_self; VALUE load_path; -- cgit v1.2.3