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

ruby-changes:48233

From: nobu <ko1@a...>
Date: Sun, 22 Oct 2017 14:36:54 +0900 (JST)
Subject: [ruby-changes:48233] nobu:r60348 (trunk): objspace.c: missing types

nobu	2017-10-22 14:36:49 +0900 (Sun, 22 Oct 2017)

  New Revision: 60348

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=60348

  Log:
    objspace.c: missing types
    
    * ext/objspace/objspace.c (count_nodes): added recently added node
      types that were missing.

  Modified files:
    trunk/ext/objspace/objspace.c
Index: ext/objspace/objspace.c
===================================================================
--- ext/objspace/objspace.c	(revision 60347)
+++ ext/objspace/objspace.c	(revision 60348)
@@ -357,7 +357,7 @@ static VALUE https://github.com/ruby/ruby/blob/trunk/ext/objspace/objspace.c#L357
 count_nodes(int argc, VALUE *argv, VALUE os)
 {
     size_t nodes[NODE_LAST+1];
-    size_t i;
+    enum node_type i;
     VALUE hash = setup_hash(argc, argv);
 
     for (i = 0; i <= NODE_LAST; i++) {
@@ -370,10 +370,11 @@ count_nodes(int argc, VALUE *argv, VALUE https://github.com/ruby/ruby/blob/trunk/ext/objspace/objspace.c#L370
 	if (nodes[i] != 0) {
 	    VALUE node;
 	    switch (i) {
-#define COUNT_NODE(n) case n: node = ID2SYM(rb_intern(#n)); break;
+#define COUNT_NODE(n) case n: node = ID2SYM(rb_intern(#n)); goto set
 		COUNT_NODE(NODE_SCOPE);
 		COUNT_NODE(NODE_BLOCK);
 		COUNT_NODE(NODE_IF);
+		COUNT_NODE(NODE_UNLESS);
 		COUNT_NODE(NODE_CASE);
 		COUNT_NODE(NODE_WHEN);
 		COUNT_NODE(NODE_OPT_N);
@@ -405,8 +406,10 @@ count_nodes(int argc, VALUE *argv, VALUE https://github.com/ruby/ruby/blob/trunk/ext/objspace/objspace.c#L406
 		COUNT_NODE(NODE_OP_ASGN_OR);
 		COUNT_NODE(NODE_OP_CDECL);
 		COUNT_NODE(NODE_CALL);
+		COUNT_NODE(NODE_OPCALL);
 		COUNT_NODE(NODE_FCALL);
 		COUNT_NODE(NODE_VCALL);
+		COUNT_NODE(NODE_QCALL);
 		COUNT_NODE(NODE_SUPER);
 		COUNT_NODE(NODE_ZSUPER);
 		COUNT_NODE(NODE_ARRAY);
@@ -468,8 +471,10 @@ count_nodes(int argc, VALUE *argv, VALUE https://github.com/ruby/ruby/blob/trunk/ext/objspace/objspace.c#L471
 		COUNT_NODE(NODE_PRELUDE);
 		COUNT_NODE(NODE_LAMBDA);
 #undef COUNT_NODE
-	      default: node = INT2FIX(i);
+	      case NODE_LAST: break;
 	    }
+	    UNREACHABLE;
+	  set:
 	    rb_hash_aset(hash, node, SIZET2NUM(nodes[i]));
 	}
     }

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

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