diff options
Diffstat (limited to 'src/scanner.c')
-rw-r--r-- | src/scanner.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/src/scanner.c b/src/scanner.c index 0fbaabd..44f7d6d 100644 --- a/src/scanner.c +++ b/src/scanner.c @@ -654,31 +654,31 @@ emit_stubs(struct wl_list *message_list, struct interface *interface) "{\n"); if (ret) { printf("\tstruct wl_proxy *%s;\n\n" - "\t%s = wl_proxy_create(" - "(struct wl_proxy *) %s,\n", - ret->name, ret->name, interface->name); + "\t%s = wl_proxy_marshal_constructor(" + "(struct wl_proxy *) %s,\n" + "\t\t\t %s_%s, ", + ret->name, ret->name, + interface->name, + interface->uppercase_name, + m->uppercase_name); + if (ret->interface_name == NULL) - printf("\t\t\t interface);\n"); + printf("interface"); else - printf("\t\t\t &%s_interface);\n", - ret->interface_name); - - printf("\tif (!%s)\n" - "\t\treturn NULL;\n\n", - ret->name); + printf("&%s_interface", ret->interface_name); + } else { + printf("\twl_proxy_marshal((struct wl_proxy *) %s,\n" + "\t\t\t %s_%s", + interface->name, + interface->uppercase_name, + m->uppercase_name); } - printf("\twl_proxy_marshal((struct wl_proxy *) %s,\n" - "\t\t\t %s_%s", - interface->name, - interface->uppercase_name, - m->uppercase_name); - wl_list_for_each(a, &m->arg_list, link) { if (a->type == NEW_ID && a->interface_name == NULL) printf(", interface->name, version"); - printf(", "); - printf("%s", a->name); + else if (a->type != NEW_ID) + printf(", %s", a->name); } printf(");\n"); |