summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--shape.h9
-rw-r--r--vm_insnhelper.c3
2 files changed, 10 insertions, 2 deletions
@@ -14,6 +14,7 @@ STATIC_ASSERT(shape_id_num_bits, SHAPE_ID_NUM_BITS == sizeof(shape_id_t) * CHAR_
#define SHAPE_ID_OFFSET_MASK (SHAPE_BUFFER_SIZE - 1)
#define SHAPE_ID_FLAGS_MASK (shape_id_t)(((1 << (SHAPE_ID_NUM_BITS - SHAPE_ID_OFFSET_NUM_BITS)) - 1) << SHAPE_ID_OFFSET_NUM_BITS)
#define SHAPE_ID_FL_FROZEN (SHAPE_FL_FROZEN << SHAPE_ID_OFFSET_NUM_BITS)
typedef uint32_t redblack_id_t;
@@ -110,6 +111,14 @@ RBASIC_SHAPE_ID(VALUE obj)
#endif
}
static inline void
RBASIC_SET_SHAPE_ID(VALUE obj, shape_id_t shape_id)
{
@@ -1215,14 +1215,13 @@ vm_getivar(VALUE obj, ID id, const rb_iseq_t *iseq, IVC ic, const struct rb_call
{
#if OPT_IC_FOR_IVAR
VALUE val = Qundef;
- shape_id_t shape_id;
VALUE * ivar_list;
if (SPECIAL_CONST_P(obj)) {
return default_value;
}
- shape_id = RBASIC_SHAPE_ID(obj);
switch (BUILTIN_TYPE(obj)) {
case T_OBJECT: