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

Reply via email to