mirror of
https://github.com/ruby/ruby.git
synced 2025-08-15 13:39:04 +02:00
Fix rb_shape_transition_object_id transition to TOO_COMPLEX
If `get_next_shape_internal` fail to return a shape, we must transitiont to a complex shape. `shape_transition_object_id` mistakenly didn't. Co-Authored-By: Peter Zhu <peter@peterzhu.ca>
This commit is contained in:
parent
547f111b5b
commit
1064c63643
3 changed files with 9 additions and 2 deletions
1
shape.c
1
shape.c
|
@ -716,6 +716,7 @@ shape_transition_object_id(shape_id_t original_shape_id)
|
|||
rb_shape_t *shape = get_next_shape_internal(RSHAPE(original_shape_id), id_object_id, SHAPE_OBJ_ID, &dont_care, true);
|
||||
if (!shape) {
|
||||
shape = RSHAPE(ROOT_SHAPE_WITH_OBJ_ID);
|
||||
return transition_complex(shape_id(shape, original_shape_id) | SHAPE_ID_FL_HAS_OBJECT_ID);
|
||||
}
|
||||
|
||||
RUBY_ASSERT(shape);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue