From 323cff8f634a910cde0490c6580a9ded383ca30b Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 1 May 2024 12:39:44 +0200 Subject: [PATCH] widl: Fix correlation offset for unencapsulated unions in interpreted mode. --- tools/widl/typegen.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index 608867659ab..9bfec7c5000 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -2618,7 +2618,7 @@ static void write_member_type(FILE *file, const type_t *cont, if (type_get_type(type) == TYPE_UNION && is_attr(attrs, ATTR_SWITCHIS)) { absoff = *corroff; - *corroff += 8; + *corroff += interpreted_mode ? 10 : 8; } else { @@ -2708,7 +2708,7 @@ static void write_descriptors(FILE *file, type_t *type, unsigned int *tfsoff) if (!fc) fc = FC_LONG; if (is_attr(ft->attrs, ATTR_SWITCHTYPE)) - absoff += 8; /* we already have a corr descr, skip it */ + absoff += interpreted_mode ? 10 : 8; /* we already have a corr descr, skip it */ print_file(file, 0, "/* %d */\n", *tfsoff); print_file(file, 2, "0x%x,\t/* FC_NON_ENCAPSULATED_UNION */\n", FC_NON_ENCAPSULATED_UNION); print_file(file, 2, "0x%x,\t/* %s */\n", fc, string_of_type(fc));