diff options
| author | Simon Ser <contact@emersion.fr> | 2025-02-23 23:38:15 +0100 |
|---|---|---|
| committer | Simon Ser <contact@emersion.fr> | 2025-02-23 23:38:15 +0100 |
| commit | dbfa8d784eed0949f3dd50c19a58873b5deb32c6 (patch) | |
| tree | 555bc750eca4df9ad9ff35ab957830f04a77896b /src | |
| parent | Forward declarate timespec struct (diff) | |
| download | wayland-dbfa8d784eed0949f3dd50c19a58873b5deb32c6.tar wayland-dbfa8d784eed0949f3dd50c19a58873b5deb32c6.tar.gz wayland-dbfa8d784eed0949f3dd50c19a58873b5deb32c6.tar.bz2 wayland-dbfa8d784eed0949f3dd50c19a58873b5deb32c6.tar.lz wayland-dbfa8d784eed0949f3dd50c19a58873b5deb32c6.tar.xz wayland-dbfa8d784eed0949f3dd50c19a58873b5deb32c6.tar.zst wayland-dbfa8d784eed0949f3dd50c19a58873b5deb32c6.zip | |
scanner: use separate guards for validator functions
Generated XXX_is_valid() functions for enums are guarded behind the
same #define as the enum itself. This worked fine until recently,
but since fbd7460737c9 ("scanner: add new enum-header mode") we're
also generating enum-only headers.
When including the enum-only header first, and then the server
header, the validator functions are missing.
Define a separate guard to fix this.
Signed-off-by: Simon Ser <contact@emersion.fr>
Diffstat (limited to 'src')
| -rw-r--r-- | src/scanner.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/scanner.c b/src/scanner.c index 3cd05d1..1b71e60 100644 --- a/src/scanner.c +++ b/src/scanner.c @@ -1383,6 +1383,11 @@ emit_validator(struct interface *interface, struct enumeration *e) { struct entry *entry; + printf("#ifndef %s_%s_ENUM_IS_VALID\n", + interface->uppercase_name, e->uppercase_name); + printf("#define %s_%s_ENUM_IS_VALID\n", + interface->uppercase_name, e->uppercase_name); + printf("/**\n" " * @ingroup iface_%s\n" " * Validate a %s %s value.\n" @@ -1420,6 +1425,9 @@ emit_validator(struct interface *interface, struct enumeration *e) " }\n"); } printf("}\n"); + + printf("#endif /* %s_%s_ENUM_IS_VALID */\n\n", + interface->uppercase_name, e->uppercase_name); } static void @@ -1483,11 +1491,11 @@ emit_enumerations(struct interface *interface, bool with_validators) } - if (with_validators) - emit_validator(interface, e); - printf("#endif /* %s_%s_ENUM */\n\n", interface->uppercase_name, e->uppercase_name); + + if (with_validators) + emit_validator(interface, e); } } |
