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 <consume.noise@gmail.com> Reviewed-by: Ran Benita <ran234@gmail.com>
This commit is contained in:
parent
b9efd2a09a
commit
0289348f2c
|
@ -1787,12 +1787,12 @@ def _c_complex(self):
|
||||||
for field in struct_fields:
|
for field in struct_fields:
|
||||||
length = len(field.c_field_type)
|
length = len(field.c_field_type)
|
||||||
# account for '*' pointer_spec
|
# account for '*' pointer_spec
|
||||||
if not field.type.fixed_size():
|
if not field.type.fixed_size() and not self.is_union:
|
||||||
length += 1
|
length += 1
|
||||||
maxtypelen = max(maxtypelen, length)
|
maxtypelen = max(maxtypelen, length)
|
||||||
|
|
||||||
def _c_complex_field(self, field, space=''):
|
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
|
# in case of switch with switch children, don't make the field a pointer
|
||||||
# necessary for unserialize to work
|
# necessary for unserialize to work
|
||||||
(self.is_switch and field.type.is_switch)):
|
(self.is_switch and field.type.is_switch)):
|
||||||
|
|
Loading…
Reference in New Issue