vm_getivar: normalize shape_id to ignore frozen state
Freezing an object changes its shape_id This is necessary
so that setivar routines can use the shape_id as a cache key
and save on checking the frozen status every time.
However for getivar routines, this causes needless cache misses.
By clearing that bit we increase hit rate in codepaths that see
both frozen and mutable objects.
vm_getivar: normalize shape_id to ignore frozen state
Freezing an object changes its
shape_id
This is necessaryso that
setivar
routines can use theshape_id
as a cache keyand save on checking the frozen status every time.
However for
getivar
routines, this causes needless cache misses.By clearing that bit we increase hit rate in codepaths that see
both frozen and mutable objects.