summaryrefslogtreecommitdiff
path: root/variable.c
diff options
context:
space:
mode:
authorJean Boussier <[email protected]>2025-05-08 19:05:03 +0200
committerJean Boussier <[email protected]>2025-05-09 10:22:51 +0200
commitf82523f14bf69f73a4660611a16a67a88a408eda ()
treec6481c2eac6a9a51896d71b6063a0218f8d49915 /variable.c
parent31d0a5815c43b219eca356d0cc7dfedfb0569eca (diff)
Refactor `rb_shape_transition_frozen` to return a `shape_id`.
Notes: Merged: https://.com/ruby/ruby/pull/13283
-rw-r--r--variable.c6
1 files changed, 3 insertions, 3 deletions
@@ -2010,14 +2010,14 @@ void rb_obj_freeze_inline(VALUE x)
RB_FL_UNSET_RAW(x, FL_USER2 | FL_USER3); // STR_CHILLED
}
- rb_shape_t * next_shape = rb_shape_transition_shape_frozen(x);
// If we're transitioning from "not complex" to "too complex"
// then evict ivars. This can happen if we run out of shapes
- if (rb_shape_too_complex_p(next_shape) && !rb_shape_obj_too_complex(x)) {
rb_evict_fields_to_hash(x);
}
- rb_shape_set_shape(x, next_shape);
if (RBASIC_CLASS(x)) {
rb_freeze_singleton_class(x);