aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-11-04 11:37:19 +0000
committermame <mame@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-11-04 11:37:19 +0000
commitb6e80c2260fba69c37faabcf96aa3a5f1a78d190 (patch)
tree1a3de74d20819c95fbb90025e07bc0fc518305f8
parent1aa34afd41a514f0402a41d9d5a1a3c9af43ee7e (diff)
downloadruby-b6e80c2260fba69c37faabcf96aa3a5f1a78d190.tar.gz
Remove RNODE cast from NODE utility functions
Now, casting NODE to VALUE is not recommended. This change requires an explicit cast from VALUE to NODE to use the NODE utility functions such as `nd_type`. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60643 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r--compile.c2
-rw-r--r--ext/objspace/objspace_dump.c4
-rw-r--r--node.h16
3 files changed, 9 insertions, 13 deletions
diff --git a/compile.c b/compile.c
index 7228defdf0..3eb23ea965 100644
--- a/compile.c
+++ b/compile.c
@@ -4227,7 +4227,7 @@ setup_args(rb_iseq_t *iseq, LINK_ANCHOR *const args, const NODE *argn,
if (nsplat > 1) {
int i;
for (i=1; i<nsplat; i++) {
- ADD_INSN(args_splat, nd_line(args), concatarray);
+ ADD_INSN(args_splat, nd_line(RNODE(args)), concatarray);
}
}
diff --git a/ext/objspace/objspace_dump.c b/ext/objspace/objspace_dump.c
index f9dda1ac1a..18c4061f29 100644
--- a/ext/objspace/objspace_dump.c
+++ b/ext/objspace/objspace_dump.c
@@ -244,10 +244,6 @@ dump_object(VALUE obj, struct dump_config *dc)
dump_append(dc, "}\n");
return;
- case T_NODE:
- dump_append(dc, ", \"node_type\":\"%s\"", ruby_node_name(nd_type(obj)));
- break;
-
case T_IMEMO:
dump_append(dc, ", \"imemo_type\":\"%s\"", imemo_name(imemo_type(obj)));
break;
diff --git a/node.h b/node.h
index 3a07eccd10..848ef1b76e 100644
--- a/node.h
+++ b/node.h
@@ -261,22 +261,22 @@ typedef struct RNode {
#define NODE_TYPESHIFT 8
#define NODE_TYPEMASK (((VALUE)0x7f)<<NODE_TYPESHIFT)
-#define nd_type(n) ((int) (((RNODE(n))->flags & NODE_TYPEMASK)>>NODE_TYPESHIFT))
+#define nd_type(n) ((int) (((n)->flags & NODE_TYPEMASK)>>NODE_TYPESHIFT))
#define nd_set_type(n,t) \
- RNODE(n)->flags=((RNODE(n)->flags&~NODE_TYPEMASK)|((((unsigned long)(t))<<NODE_TYPESHIFT)&NODE_TYPEMASK))
+ (n)->flags=(((n)->flags&~NODE_TYPEMASK)|((((unsigned long)(t))<<NODE_TYPESHIFT)&NODE_TYPEMASK))
#define NODE_LSHIFT (NODE_TYPESHIFT+7)
#define NODE_LMASK (((SIGNED_VALUE)1<<(sizeof(VALUE)*CHAR_BIT-NODE_LSHIFT))-1)
-#define nd_line(n) (int)(((SIGNED_VALUE)RNODE(n)->flags)>>NODE_LSHIFT)
+#define nd_line(n) (int)(((SIGNED_VALUE)(n)->flags)>>NODE_LSHIFT)
#define nd_set_line(n,l) \
- RNODE(n)->flags=((RNODE(n)->flags&~((VALUE)(-1)<<NODE_LSHIFT))|((VALUE)((l)&NODE_LMASK)<<NODE_LSHIFT))
-#define nd_column(n) (int)(RNODE(n)->nd_location & 0xffff)
+ (n)->flags=(((n)->flags&~((VALUE)(-1)<<NODE_LSHIFT))|((VALUE)((l)&NODE_LMASK)<<NODE_LSHIFT))
+#define nd_column(n) (int)((n)->nd_location & 0xffff)
#define nd_set_column(n, v) \
- RNODE(n)->nd_location = (RNODE(n)->nd_location & ~0xffff) | ((v) > 0xffff ? 0xffff : ((unsigned int)(v)) & 0xffff)
+ (n)->nd_location = ((n)->nd_location & ~0xffff) | ((v) > 0xffff ? 0xffff : ((unsigned int)(v)) & 0xffff)
-#define nd_lineno(n) (int)((RNODE(n)->nd_location >> 16) & 0xffff)
+#define nd_lineno(n) (int)(((n)->nd_location >> 16) & 0xffff)
#define nd_set_lineno(n, v) \
- RNODE(n)->nd_location = (RNODE(n)->nd_location & ~0xffff0000) | (((v) > 0xffff ? 0xffff : ((unsigned int)(v)) & 0xffff) << 16)
+ (n)->nd_location = ((n)->nd_location & ~0xffff0000) | (((v) > 0xffff ? 0xffff : ((unsigned int)(v)) & 0xffff) << 16)
#define nd_head u1.node
#define nd_alen u2.argc