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
This commit is contained in:
Tim-Philipp Müller 2015-06-29 10:41:27 +01:00
parent 03dccde1ef
commit 86abdbfb55
2 changed files with 9 additions and 6 deletions

View file

@ -233,7 +233,7 @@ gst_direct_control_binding_constructor (GType type, guint n_construct_params,
/* select mapping function */ /* select mapping function */
#define SET_CONVERT_FUNCTION(type) \ #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_g_value = abs_convert_g_value_to_##type; \
self->convert_value = abs_convert_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); self->cs = g_value_dup_object (value);
break; break;
case PROP_ABSOLUTE: case PROP_ABSOLUTE:
self->want_absolute = g_value_get_boolean (value); self->ABI.abi.want_absolute = g_value_get_boolean (value);
break; break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); 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); g_value_set_object (value, self->cs);
break; break;
case PROP_ABSOLUTE: case PROP_ABSOLUTE:
g_value_set_boolean (value, self->want_absolute); g_value_set_boolean (value, self->ABI.abi.want_absolute);
break; break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);

View file

@ -81,13 +81,16 @@ struct _GstDirectControlBinding {
GValue cur_value; GValue cur_value;
gdouble last_value; gdouble last_value;
gint byte_size; gint byte_size;
gboolean want_absolute;
GstDirectControlBindingConvertValue convert_value; GstDirectControlBindingConvertValue convert_value;
GstDirectControlBindingConvertGValue convert_g_value; GstDirectControlBindingConvertGValue convert_g_value;
union {
gpointer _gst_reserved[GST_PADDING]; gpointer _gst_reserved[GST_PADDING];
}; struct {
gboolean want_absolute;
} abi;
} ABI;};
/** /**
* GstDirectControlBindingClass: * GstDirectControlBindingClass: