From 86abdbfb5552a11219275e5b597e7d8b476748b2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Mon, 29 Jun 2015 10:41:27 +0100 Subject: [PATCH] directcontrolbinding: fix ABI break Structure size was increased without adjustment of the padding. https://bugzilla.gnome.org/show_bug.cgi?id=751622 https://bugzilla.gnome.org/show_bug.cgi?id=740502 --- libs/gst/controller/gstdirectcontrolbinding.c | 6 +++--- libs/gst/controller/gstdirectcontrolbinding.h | 9 ++++++--- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/libs/gst/controller/gstdirectcontrolbinding.c b/libs/gst/controller/gstdirectcontrolbinding.c index 6916556..44eb405 100644 --- a/libs/gst/controller/gstdirectcontrolbinding.c +++ b/libs/gst/controller/gstdirectcontrolbinding.c @@ -233,7 +233,7 @@ gst_direct_control_binding_constructor (GType type, guint n_construct_params, /* select mapping function */ #define SET_CONVERT_FUNCTION(type) \ - if (self->want_absolute) { \ + if (self->ABI.abi.want_absolute) { \ self->convert_g_value = abs_convert_g_value_to_##type; \ self->convert_value = abs_convert_value_to_##type; \ } \ @@ -300,7 +300,7 @@ gst_direct_control_binding_set_property (GObject * object, guint prop_id, self->cs = g_value_dup_object (value); break; case PROP_ABSOLUTE: - self->want_absolute = g_value_get_boolean (value); + self->ABI.abi.want_absolute = g_value_get_boolean (value); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); @@ -319,7 +319,7 @@ gst_direct_control_binding_get_property (GObject * object, guint prop_id, g_value_set_object (value, self->cs); break; case PROP_ABSOLUTE: - g_value_set_boolean (value, self->want_absolute); + g_value_set_boolean (value, self->ABI.abi.want_absolute); break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); diff --git a/libs/gst/controller/gstdirectcontrolbinding.h b/libs/gst/controller/gstdirectcontrolbinding.h index ade2ea4..5b816c8 100644 --- a/libs/gst/controller/gstdirectcontrolbinding.h +++ b/libs/gst/controller/gstdirectcontrolbinding.h @@ -81,13 +81,16 @@ struct _GstDirectControlBinding { GValue cur_value; gdouble last_value; gint byte_size; - gboolean want_absolute; GstDirectControlBindingConvertValue convert_value; GstDirectControlBindingConvertGValue convert_g_value; - gpointer _gst_reserved[GST_PADDING]; -}; + union { + gpointer _gst_reserved[GST_PADDING]; + struct { + gboolean want_absolute; + } abi; + } ABI;}; /** * GstDirectControlBindingClass: -- 2.7.4