diff --git a/ext/objspace/objspace.c b/ext/objspace/objspace.c index d1ccb51094..61fb6a99f3 100644 --- a/ext/objspace/objspace.c +++ b/ext/objspace/objspace.c @@ -554,7 +554,7 @@ count_tdata_objects(int argc, VALUE *argv, VALUE self) return hash; } -static ID imemo_type_ids[imemo_mask+1]; +static ID imemo_type_ids[IMEMO_MASK+1]; static int count_imemo_objects_i(void *vstart, void *vend, size_t stride, void *data) diff --git a/gc.c b/gc.c index 91ada6746c..21f41e20c7 100644 --- a/gc.c +++ b/gc.c @@ -4539,7 +4539,6 @@ gc_mark_imemo(rb_objspace_t *objspace, VALUE obj) } while ((m = m->next) != NULL); } return; - case imemo_mask: break; #if VM_CHECK_MODE > 0 default: VM_UNREACHABLE(gc_mark_imemo); @@ -9367,7 +9366,7 @@ rb_raw_obj_info(char *buff, const int buff_size, VALUE obj) break; } case T_IMEMO: { - const char *imemo_name; + const char *imemo_name = NULL; switch (imemo_type(obj)) { #define IMEMO_NAME(x) case imemo_##x: imemo_name = #x; break; IMEMO_NAME(env); @@ -9380,7 +9379,6 @@ rb_raw_obj_info(char *buff, const int buff_size, VALUE obj) IMEMO_NAME(iseq); IMEMO_NAME(alloc); #undef IMEMO_NAME - case imemo_mask: break; } snprintf(buff, buff_size, "%s %s", buff, imemo_name); diff --git a/internal.h b/internal.h index 10c58d6533..83b61f4d01 100644 --- a/internal.h +++ b/internal.h @@ -844,14 +844,14 @@ enum imemo_type { imemo_memo = 5, imemo_ment = 6, imemo_iseq = 7, - imemo_alloc = 8, - imemo_mask = 0x0f + imemo_alloc = 8 }; +#define IMEMO_MASK 0x0f static inline enum imemo_type imemo_type(VALUE imemo) { - return (RBASIC(imemo)->flags >> FL_USHIFT) & imemo_mask; + return (RBASIC(imemo)->flags >> FL_USHIFT) & IMEMO_MASK; } static inline int @@ -859,7 +859,7 @@ imemo_type_p(VALUE imemo, enum imemo_type imemo_type) { if (LIKELY(!RB_SPECIAL_CONST_P(imemo))) { /* fixed at compile time if imemo_type is given. */ - const VALUE mask = (imemo_mask << FL_USHIFT) | RUBY_T_MASK; + const VALUE mask = (IMEMO_MASK << FL_USHIFT) | RUBY_T_MASK; const VALUE expected_type = (imemo_type << FL_USHIFT) | T_IMEMO; /* fixed at runtime. */ return expected_type == (RBASIC(imemo)->flags & mask);