From: Emil Velikov <emil.veli...@collabora.com> Allows us to remove the explicit NULL init, keeping the list shorter and easier to read.
Signed-off-by: Emil Velikov <emil.veli...@collabora.com> --- src/scanner.c | 26 +++++++++----------------- 1 file changed, 9 insertions(+), 17 deletions(-) diff --git a/src/scanner.c b/src/scanner.c index c345ed6..c93ee60 100644 --- a/src/scanner.c +++ b/src/scanner.c @@ -1609,20 +1609,12 @@ emit_header(struct protocol *protocol, enum side side) "#endif\n"); } -static void -emit_null_run(struct protocol *protocol) -{ - int i; - - for (i = 0; i < protocol->null_run_length; i++) - printf("\tNULL,\n"); -} - static void emit_types(struct protocol *protocol, struct wl_list *message_list) { struct message *m; struct arg *a; + int index; wl_list_for_each(m, message_list, link) { if (m->all_null) { @@ -1633,21 +1625,22 @@ emit_types(struct protocol *protocol, struct wl_list *message_list) m->type_index = protocol->null_run_length + protocol->type_index; protocol->type_index += m->arg_count; + index = m->type_index; wl_list_for_each(a, &m->arg_list, link) { switch (a->type) { case NEW_ID: case OBJECT: - if (a->interface_name) - printf("\t&%s_interface,\n", - a->interface_name); - else - printf("\tNULL,\n"); - break; + if (a->interface_name) { + printf("\t[%u] = &%s_interface,\n", + index, a->interface_name); + break; + } + /* fallthrough */ default: - printf("\tNULL,\n"); break; } + index++; } } } @@ -1745,7 +1738,6 @@ emit_code(struct protocol *protocol) printf("\n"); printf("static const struct wl_interface *types[] = {\n"); - emit_null_run(protocol); wl_list_for_each(i, &protocol->interface_list, link) { emit_types(protocol, &i->request_list); emit_types(protocol, &i->event_list); -- 2.14.1 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel