Project

General

Profile

« Previous | Next » 

Revision 4aee6931

Added by byroot (Jean Boussier) about 2 years ago

Make get_next_shape_internal idempotent

Since the check for MAX_SHAPE_ID was done before even checking
if the transition we're looking for even exists, as soon as the
max shape is reached, get_next_shape_internal would always return
TOO_COMPLEX regardless of whether the transition we're looking
for already exist or not.

In addition to entirely de-optimize all newly created objects, it
also made an assertion fail in vm_setivar:

vm_setivar:rb_shape_get_next_iv_shape(rb_shape_get_shape_by_id(source_shape_id), id) == dest_shape