mirror of
https://gitlab.freedesktop.org/wayland/wayland.git
synced 2026-05-03 06:46:33 -04:00
scanner: Fix types emitted for new_id arguments
Previously, wayland-scanner would only emit one NULL entry in the wl_message.types array for every argument, even though requests with new_id arguments without an interface type additionally take a string and a uint argument. Signed-off-by: Hannes Schulze <contact@haschu.me>
This commit is contained in:
parent
74becc8761
commit
b93a50abd9
4 changed files with 20 additions and 4 deletions
|
|
@ -1629,6 +1629,10 @@ emit_types_forward_declarations(struct protocol *protocol,
|
|||
m->all_null = 1;
|
||||
wl_list_for_each(a, &m->arg_list, link) {
|
||||
length++;
|
||||
if (a->type == NEW_ID && !a->interface_name)
|
||||
// adds implicit string and uint arguments
|
||||
length += 2;
|
||||
|
||||
switch (a->type) {
|
||||
case NEW_ID:
|
||||
case OBJECT:
|
||||
|
|
@ -1866,9 +1870,15 @@ 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;
|
||||
|
||||
wl_list_for_each(a, &m->arg_list, link) {
|
||||
protocol->type_index++;
|
||||
if (a->type == NEW_ID && !a->interface_name) {
|
||||
// adds implicit string and uint arguments
|
||||
printf("\tNULL,\n\tNULL,\n");
|
||||
protocol->type_index += 2;
|
||||
}
|
||||
|
||||
switch (a->type) {
|
||||
case NEW_ID:
|
||||
case OBJECT:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue