diff options
author | Jemma Issroff <[email protected]> | 2023-01-26 11:42:17 -0500 |
---|---|---|
committer | Aaron Patterson <[email protected]> | 2023-02-06 08:40:51 -0800 |
commit | 28da9909849dc02abe74de8170fe4036534361ba () | |
tree | c0f0b56f943a9b7c68b33099d0bb36ab82aa4113 /shape.h | |
parent | cab8c11611d94adaa86d9ed8322dd372922f94bc (diff) |
Limit maximum number of IVs on a shape on T_OBJECTS
Create SHAPE_MAX_NUM_IVS (currently 50) and limit all shapes of T_OBJECTS to that number of IVs. When a shape with a T_OBJECT has more than 50 IVs, fall back to the obj_too_complex shape which uses hash lookup for ivs. Note that a previous version of this commit 78fcc9847a9db6d42c8c263154ec05903a370b6b was reverted in 88f2b94065be3fcd6769a3f132cfee8ecfb663b8 because it did not account for non-T_OBJECTS
Notes: Merged: https://.com/ruby/ruby/pull/7188
-rw-r--r-- | shape.h | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -31,6 +31,7 @@ typedef uint16_t shape_id_t; # define SHAPE_BITMAP_SIZE 16384 # define SHAPE_MAX_VARIATIONS 8 # define MAX_SHAPE_ID (SHAPE_MASK - 1) # define INVALID_SHAPE_ID SHAPE_MASK |