From 06abfa5be60e589052eb3bdfdae6c132bea3d20b Mon Sep 17 00:00:00 2001 From: Aaron Patterson Date: Mon, 26 Sep 2022 16:09:50 -0700 Subject: Revert this until we can figure out WB issues or remove shapes from GC Revert "* expand tabs. [ci skip]" This reverts commit 830b5b5c351c5c6efa5ad461ae4ec5085e5f0275. Revert "This commit implements the Object Shapes technique in CRuby." This reverts commit 9ddfd2ca004d1952be79cf1b84c52c79a55978f4. --- internal/class.h | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'internal/class.h') diff --git a/internal/class.h b/internal/class.h index 36635d6eaa..ae680564a6 100644 --- a/internal/class.h +++ b/internal/class.h @@ -14,7 +14,6 @@ #include "ruby/internal/stdbool.h" /* for bool */ #include "ruby/intern.h" /* for rb_alloc_func_t */ #include "ruby/ruby.h" /* for struct RBasic */ -#include "shape.h" #ifdef RCLASS_SUPER # undef RCLASS_SUPER @@ -27,9 +26,9 @@ struct rb_subclass_entry { }; struct rb_iv_index_tbl_entry { - uint32_t idx; - shape_id_t source_shape_id; - shape_id_t dest_shape_id; + uint32_t index; + rb_serial_t class_serial; + VALUE class_value; }; struct rb_cvar_class_tbl_entry { @@ -39,6 +38,7 @@ struct rb_cvar_class_tbl_entry { }; struct rb_classext_struct { + struct st_table *iv_index_tbl; // ID -> struct rb_iv_index_tbl_entry struct st_table *iv_tbl; #if SIZEOF_SERIAL_T == SIZEOF_VALUE /* otherwise m_tbl is in struct RClass */ struct rb_id_table *m_tbl; @@ -64,8 +64,6 @@ struct rb_classext_struct { const VALUE refined_class; rb_alloc_func_t allocator; const VALUE includer; - uint32_t max_iv_count; - uint16_t shape_id; }; struct RClass { @@ -104,6 +102,7 @@ typedef struct rb_classext_struct rb_classext_t; #define RCLASS_CALLABLE_M_TBL(c) (RCLASS_EXT(c)->callable_m_tbl) #define RCLASS_CC_TBL(c) (RCLASS_EXT(c)->cc_tbl) #define RCLASS_CVC_TBL(c) (RCLASS_EXT(c)->cvc_tbl) +#define RCLASS_IV_INDEX_TBL(c) (RCLASS_EXT(c)->iv_index_tbl) #define RCLASS_ORIGIN(c) (RCLASS_EXT(c)->origin_) #define RCLASS_REFINED_CLASS(c) (RCLASS_EXT(c)->refined_class) #if SIZEOF_SERIAL_T == SIZEOF_VALUE -- cgit v1.2.1