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
commita03e9fd9fabf20012482dd2be4ed2e5b466b59ec (patch)
tree1a3de74d20819c95fbb90025e07bc0fc518305f8
parentee712414aaba571bd8002781e91eea54a36ea943 (diff)
downloadruby-a03e9fd9fabf20012482dd2be4ed2e5b466b59ec.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