[Xcb] [PUSHED][PATCH libxcb 1/1] do not serialize pads by default anymore

Christian Linhart chris at DemoRecorder.com
Sun Jan 31 23:04:47 PST 2016


Hi,

I've just pushed the libxcb part of this fix.
I posted this about two weeks ago, and there was neither complaint nor review.
Therefore pushed due to review-by-crickets.

I you find bugs in there later, please post a patch to fix these bugs.

Chris


On 2016-01-18 06:56, Christian Linhart wrote:
> Pads should not be serialized/deserialized to maintain
> ABI compatibility when adding explicit align pads.
>
> Therefore this pad switches off serialization of pads
> unless it is enforced by serialize=true in the xml-definition
> of that pad
>
> Signed-off-by: Christian Linhart <chris at demorecorder.com>
> ---
>  src/c_client.py | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/src/c_client.py b/src/c_client.py
> index 3230a6f..57de3fb 100644
> --- a/src/c_client.py
> +++ b/src/c_client.py
> @@ -2103,15 +2103,16 @@ def _c_complex(self, force_packed = False):
>      def _c_complex_field(self, field, space=''):
>          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)):
>              spacing = ' ' * (maxtypelen - len(field.c_field_type))
>              _h('%s    %s%s %s%s;', space, field.c_field_type, spacing, field.c_field_name, field.c_subscript)
> -        else:
> +        elif (not field.type.is_pad) or field.type.serialize:
> +            # serialize everything except pads (unless serialization of pads is enforced by serialize=true)
>              spacing = ' ' * (maxtypelen - (len(field.c_field_type) + 1))
>              _h('%s    %s%s *%s%s;', space, field.c_field_type, spacing, field.c_field_name, field.c_subscript)
>  
>      if not self.is_switch:
>          for field in struct_fields:
>              _c_complex_field(self, field)
>      else:



More information about the Xcb mailing list