From 947ff4ba46ff140afd3deccbb3de304778cda723 Mon Sep 17 00:00:00 2001 From: Zebediah Figura Date: Tue, 10 Apr 2018 20:30:29 -0500 Subject: [PATCH] widl: Size of an encapsulated union doesn't include the tag. Signed-off-by: Zebediah Figura Signed-off-by: Huw Davies Signed-off-by: Alexandre Julliard --- tools/widl/typegen.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/tools/widl/typegen.c b/tools/widl/typegen.c index 27855ccc31c..9f62589c4ed 100644 --- a/tools/widl/typegen.c +++ b/tools/widl/typegen.c @@ -3248,6 +3248,7 @@ static unsigned int write_union_tfs(FILE *file, const attr_list_t *attrs, unsigned int nbranch = 0; type_t *deftype = NULL; short nodeftype = 0xffff; + unsigned int dummy; var_t *f; if (processed(type) && @@ -3256,10 +3257,10 @@ static unsigned int write_union_tfs(FILE *file, const attr_list_t *attrs, guard_rec(type); - size = type_memsize(type); - fields = type_union_get_cases(type); + size = union_memsize(fields, &dummy); + if (fields) LIST_FOR_EACH_ENTRY(f, fields, var_t, entry) { expr_list_t *cases = get_attrp(f->attrs, ATTR_CASE);