ruby-changes:48136
From: ko1 <ko1@a...>
Date: Sat, 21 Oct 2017 19:21:34 +0900 (JST)
Subject: [ruby-changes:48136] ko1:r60250 (trunk): imemo_mask (enum) -> IMEMO_MASK (immediate value).
ko1 2017-10-21 19:21:31 +0900 (Sat, 21 Oct 2017) New Revision: 60250 https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=60250 Log: imemo_mask (enum) -> IMEMO_MASK (immediate value). * internal.h: imemo_mask is not a valid imemo type but switch statements show warnings. Modified files: trunk/ext/objspace/objspace.c trunk/gc.c trunk/internal.h Index: internal.h =================================================================== --- internal.h (revision 60249) +++ internal.h (revision 60250) @@ -844,14 +844,14 @@ enum imemo_type { https://github.com/ruby/ruby/blob/trunk/internal.h#L844 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_typ https://github.com/ruby/ruby/blob/trunk/internal.h#L859 { 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); Index: gc.c =================================================================== --- gc.c (revision 60249) +++ gc.c (revision 60250) @@ -4539,7 +4539,6 @@ gc_mark_imemo(rb_objspace_t *objspace, V https://github.com/ruby/ruby/blob/trunk/gc.c#L4539 } 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 bu https://github.com/ruby/ruby/blob/trunk/gc.c#L9366 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 bu https://github.com/ruby/ruby/blob/trunk/gc.c#L9379 IMEMO_NAME(iseq); IMEMO_NAME(alloc); #undef IMEMO_NAME - case imemo_mask: break; } snprintf(buff, buff_size, "%s %s", buff, imemo_name); Index: ext/objspace/objspace.c =================================================================== --- ext/objspace/objspace.c (revision 60249) +++ ext/objspace/objspace.c (revision 60250) @@ -554,7 +554,7 @@ count_tdata_objects(int argc, VALUE *arg https://github.com/ruby/ruby/blob/trunk/ext/objspace/objspace.c#L554 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) -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/