mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-02-18 04:05:34 +00:00
value: Accept NULL as a structure
Some GstStructure properties default to NULL, so it should be a supported value. With unit test.
This commit is contained in:
parent
9a04087347
commit
dd1f0f49ab
2 changed files with 23 additions and 0 deletions
|
@ -2754,6 +2754,12 @@ gst_value_compare_structure (const GValue * value1, const GValue * value2)
|
|||
GstStructure *structure1 = GST_STRUCTURE (g_value_get_boxed (value1));
|
||||
GstStructure *structure2 = GST_STRUCTURE (g_value_get_boxed (value2));
|
||||
|
||||
if (structure1 == structure2)
|
||||
return GST_VALUE_EQUAL;
|
||||
|
||||
if (!structure1 || !structure2)
|
||||
return GST_VALUE_UNORDERED;
|
||||
|
||||
if (gst_structure_is_equal (structure1, structure2))
|
||||
return GST_VALUE_EQUAL;
|
||||
|
||||
|
|
|
@ -1048,6 +1048,23 @@ GST_START_TEST (test_value_compare)
|
|||
fail_unless (gst_value_compare (&value1, &value1) == GST_VALUE_EQUAL);
|
||||
g_value_unset (&value1);
|
||||
g_value_unset (&value2);
|
||||
|
||||
/* Check that we can compare structure */
|
||||
{
|
||||
GstStructure *s = gst_structure_new_empty ("test");
|
||||
|
||||
g_value_init (&value1, GST_TYPE_STRUCTURE);
|
||||
g_value_init (&value2, GST_TYPE_STRUCTURE);
|
||||
fail_unless (gst_value_compare (&value1, &value2) == GST_VALUE_EQUAL);
|
||||
|
||||
gst_value_set_structure (&value1, s);
|
||||
fail_unless (gst_value_compare (&value1, &value2) == GST_VALUE_UNORDERED);
|
||||
gst_value_set_structure (&value2, s);
|
||||
fail_unless (gst_value_compare (&value1, &value2) == GST_VALUE_EQUAL);
|
||||
g_value_unset (&value1);
|
||||
g_value_unset (&value2);
|
||||
gst_structure_free (s);
|
||||
}
|
||||
}
|
||||
|
||||
GST_END_TEST;
|
||||
|
|
Loading…
Reference in a new issue