summaryrefslogtreecommitdiff
path: root/shape.h
diff options
context:
space:
mode:
authorAaron Patterson <tenderlove@ruby-lang.org>2023-10-19 16:01:35 -0700
committerAaron Patterson <aaron.patterson@gmail.com>2023-10-24 10:52:06 -0700
commita3f66e09f6596259677f00255a9b6231a2739774 (patch)
treeaddc47766e34c520307baab7952343855af872e0 /shape.h
parentcaf6a72348431e0e6b61be84919cd06c7a745189 (diff)
geniv objects can become too complex
Diffstat (limited to 'shape.h')
-rw-r--r--shape.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/shape.h b/shape.h
index 68820ca2cc..7424701200 100644
--- a/shape.h
+++ b/shape.h
@@ -33,7 +33,7 @@ typedef uint16_t redblack_id_t;
# define SHAPE_FLAG_SHIFT ((SIZEOF_VALUE * 8) - SHAPE_ID_NUM_BITS)
# define SHAPE_MAX_VARIATIONS 8
-# define SHAPE_MAX_NUM_IVS (SHAPE_BUFFER_SIZE - 1)
+# define SHAPE_MAX_NUM_IVS 80
# define MAX_SHAPE_ID (SHAPE_BUFFER_SIZE - 1)
# define INVALID_SHAPE_ID SHAPE_MASK
@@ -165,7 +165,7 @@ bool rb_shape_obj_too_complex(VALUE obj);
void rb_shape_set_shape(VALUE obj, rb_shape_t* shape);
rb_shape_t* rb_shape_get_shape(VALUE obj);
int rb_shape_frozen_shape_p(rb_shape_t* shape);
-void rb_shape_transition_shape_frozen(VALUE obj);
+rb_shape_t* rb_shape_transition_shape_frozen(VALUE obj);
void rb_shape_transition_shape_remove_ivar(VALUE obj, ID id, rb_shape_t *shape, VALUE * removed);
rb_shape_t * rb_shape_transition_shape_capa(rb_shape_t * shape);
rb_shape_t* rb_shape_get_next(rb_shape_t* shape, VALUE obj, ID id);