Project

General

Profile

« Previous | Next » 

Revision d898e8d6

Added by byroot (Jean Boussier) about 2 years ago

Refactor rb_shape_transition_shape_capa out

Right now the rb_shape_get_next shape caller need to
first check if there is capacity left, and if not call
rb_shape_transition_shape_capa before it can call rb_shape_get_next.

And on each of these it needs to checks if we got a TOO_COMPLEX
back.

All this logic is duplicated in the interpreter, YJIT and RJIT.

Instead we can have rb_shape_get_next do the capacity transition
when needed. The caller can compare the old and new shapes capacity
to know if resizing is needed. It also can check for TOO_COMPLEX
only once.