1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

node.c: nd_alen only in the head

* node.c (dump_array): show nd_alen field in NODE_ARRAY only in
  the first node.  it is nd_end in the rest nodes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@55901 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2016-08-15 11:31:36 +00:00
parent 15c9e5c0a5
commit 86006209cd
2 changed files with 26 additions and 5 deletions

View file

@ -1,3 +1,8 @@
Mon Aug 15 20:31:34 2016 Nobuyoshi Nakada <nobu@ruby-lang.org>
* node.c (dump_array): show nd_alen field in NODE_ARRAY only in
the first node. it is nd_end in the rest nodes.
Mon Aug 15 16:41:32 2016 Kazuhiro NISHIYAMA <zn@mbf.nifty.com>
* appveyor.yml: Update libressl version to 2.3.7.

26
node.c
View file

@ -132,11 +132,30 @@ dump_option(VALUE buf, VALUE indent, VALUE opt)
rb_hash_foreach(opt, add_option_i, (VALUE)&arg);
}
static void dump_node(VALUE, VALUE, int, NODE *);
static const char default_indent[] = "| ";
static void
dump_array(VALUE buf, VALUE indent, int comment, NODE *node)
{
int field_flag;
const char *next_indent = default_indent;
D_NODE_HEADER(node);
F_LONG(nd_alen, "length");
F_NODE(nd_head, "element");
while (node->nd_next && nd_type(node->nd_next) == NODE_ARRAY) {
node = node->nd_next;
F_NODE(nd_head, "element");
}
LAST_NODE;
F_NODE(nd_next, "next element");
}
static void
dump_node(VALUE buf, VALUE indent, int comment, NODE *node)
{
int field_flag;
const char *next_indent = "| ";
const char *next_indent = default_indent;
if (!node) {
D_NULL_NODE;
@ -488,10 +507,7 @@ dump_node(VALUE buf, VALUE indent, int comment, NODE *node)
ANN("format: [ [nd_head], [nd_next].. ] (length: [nd_alen])");
ANN("example: return 1, 2, 3");
ary:
F_LONG(nd_alen, "length");
F_NODE(nd_head, "element");
LAST_NODE;
F_NODE(nd_next, "next element");
dump_array(buf, indent, comment, node);
break;
case NODE_ZARRAY: