aboutsummaryrefslogtreecommitdiffstats
path: root/internal/class.h
diff options
context:
space:
mode:
authorAaron Patterson <tenderlove@ruby-lang.org>2022-09-30 16:01:50 -0700
committerAaron Patterson <tenderlove@ruby-lang.org>2022-09-30 16:01:50 -0700
commit9a6803c90b817f70389cae10d60b50ad752da48f (patch)
treefd03366733e1d8198c74592474adf18bb841b1a5 /internal/class.h
parent0ab0229c1162308509b36cafbf6eaafd7ae054d7 (diff)
downloadruby-9a6803c90b817f70389cae10d60b50ad752da48f.tar.gz
Revert "This commit implements the Object Shapes technique in CRuby."
This reverts commit 68bc9e2e97d12f80df0d113e284864e225f771c2.
Diffstat (limited to 'internal/class.h')
-rw-r--r--internal/class.h11
1 files changed, 4 insertions, 7 deletions
diff --git a/internal/class.h b/internal/class.h
index 4a3e09ddc7..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
@@ -28,8 +27,8 @@ struct rb_subclass_entry {
struct rb_iv_index_tbl_entry {
uint32_t index;
- shape_id_t source_shape_id;
- shape_id_t dest_shape_id;
+ 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,10 +64,6 @@ struct rb_classext_struct {
const VALUE refined_class;
rb_alloc_func_t allocator;
const VALUE includer;
- uint32_t max_iv_count;
-#if !SHAPE_IN_BASIC_FLAGS
- shape_id_t shape_id;
-#endif
};
struct RClass {
@@ -106,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