X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=src%2Ftools%2Fvppapigen%2Fnode.c;h=9f23403777470217787bdc334bf353be9d6c12c7;hb=11b8dbf78af49d270a0e72abe7dea73eec30d85f;hp=260c6f2ef7b31aaaeba6407ea7297809d7bc49ed;hpb=7cd468a3d7dee7d6c92f69a0bb7061ae208ec727;p=vpp.git diff --git a/src/tools/vppapigen/node.c b/src/tools/vppapigen/node.c index 260c6f2ef7b..9f234037774 100644 --- a/src/tools/vppapigen/node.c +++ b/src/tools/vppapigen/node.c @@ -753,8 +753,14 @@ void node_complex_generate (node_t *this, enum passid which, FILE *fp) fprintf(fp, "vl_print(handle, \"%s%s ----- \\n\");\n", union_prefix, member_name); indent_me(fp); - fprintf(fp, "%s_print(&a->%s%s, handle);\n", - CDATA0, union_prefix, member_name); + + if (deeper && deeper->type == NODE_VECTOR) + fprintf(fp, "%s_print(a->%s%s, handle);\n", + CDATA0, union_prefix, member_name); + else + fprintf(fp, "%s_print(&a->%s%s, handle);\n", + CDATA0, union_prefix, member_name); + indent_me(fp); fprintf(fp, "vl_print(handle, \"%s%s ----- END \\n\");\n", union_prefix, member_name); @@ -772,8 +778,12 @@ void node_complex_generate (node_t *this, enum passid which, FILE *fp) } indent_me(fp); - fprintf(fp, "%s_endian(&a->%s%s);\n", - CDATA0, union_prefix, member_name); + if (deeper && deeper->type == NODE_VECTOR) + fprintf(fp, "%s_endian(a->%s%s);\n", + CDATA0, union_prefix, member_name); + else + fprintf(fp, "%s_endian(&a->%s%s);\n", + CDATA0, union_prefix, member_name); break; case PYTHON_PASS: fprintf(fp, "('%s',", CDATA0); @@ -1040,6 +1050,11 @@ YYSTYPE set_flags(YYSTYPE a1, YYSTYPE a2) flags = (int)(uword) a1; np->flags |= flags; + + /* Generate a foo_reply_t right here */ + if (flags & NODE_FLAG_AUTOREPLY) + autoreply(np); + return (a2); } /*