From 0289348f2c4ed3b1b286c51df19d82c6787c2b36 Mon Sep 17 00:00:00 2001 From: Daniel Martin Date: Fri, 28 Dec 2012 23:25:16 +0100 Subject: [PATCH] c_client.py: Do not create pointers in unions Do not create pointers in unions for fields of variadic length. Signed-off-by: Daniel Martin Reviewed-by: Ran Benita --- src/c_client.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/c_client.py b/src/c_client.py index 2aba741..a6f8edd 100644 --- a/src/c_client.py +++ b/src/c_client.py @@ -1787,12 +1787,12 @@ def _c_complex(self): for field in struct_fields: length = len(field.c_field_type) # account for '*' pointer_spec - if not field.type.fixed_size(): + if not field.type.fixed_size() and not self.is_union: length += 1 maxtypelen = max(maxtypelen, length) def _c_complex_field(self, field, space=''): - if (field.type.fixed_size() or + if (field.type.fixed_size() or self.is_union or # in case of switch with switch children, don't make the field a pointer # necessary for unserialize to work (self.is_switch and field.type.is_switch)): -- 2.34.1