[前][次][番号順一覧][スレッド一覧]

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/

[前][次][番号順一覧][スレッド一覧]