Subtracting a gint from another (or a guint from another) has no guarantees that
it will result in a gint.
Therefore do the actual comparision instead.
Also use the *actual* type for comparing flags (the field value types are different)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3319>
static gint
cmp_enum_value (GEnumValue * val1, GEnumValue * val2)
{
- return val1->value - val2->value;
+ if (val1->value == val2->value)
+ return 0;
+ return (val1->value > val2->value) ? 1 : -1;
}
static GType
}
static gint
-cmp_flags_value (GEnumValue * val1, GEnumValue * val2)
+cmp_flags_value (GFlagsValue * val1, GFlagsValue * val2)
{
- return val1->value - val2->value;
+ if (val1->value == val2->value)
+ return 0;
+ return (val1->value > val2->value) ? 1 : -1;
}
static GType