element: Enforce that elements created by gst_element_factory_create/make() are floating
[platform/upstream/gstreamer.git] / gst / gstvalue.c
index 5bf7197..8835dce 100644 (file)
@@ -276,7 +276,10 @@ _gst_value_serialize_g_value_array (const GValue * value, const gchar * begin,
   GString *s;
   GValue *v;
   gchar *s_val;
-  guint alen = array->n_values;
+  guint alen = 0;
+
+  if (array)
+    alen = array->n_values;
 
   /* estimate minimum string length to minimise re-allocs in GString */
   s = g_string_sized_new (2 + (6 * alen) + 2);
@@ -1936,7 +1939,7 @@ gst_value_set_fraction_range_full (GValue * value,
  *
  * Gets the minimum of the range specified by @value.
  *
- * Returns: the minimum of the range
+ * Returns: (nullable): the minimum of the range
  */
 const GValue *
 gst_value_get_fraction_range_min (const GValue * value)
@@ -1959,7 +1962,7 @@ gst_value_get_fraction_range_min (const GValue * value)
  *
  * Gets the maximum of the range specified by @value.
  *
- * Returns: the maximum of the range
+ * Returns: (nullable): the maximum of the range
  */
 const GValue *
 gst_value_get_fraction_range_max (const GValue * value)
@@ -5492,7 +5495,7 @@ gst_value_list_equals_range (const GValue * list, const GValue * value)
 }
 
 /* "Pure" variant of gst_value_compare which is guaranteed to
- * not have list arguments and therefore does basic comparisions
+ * not have list arguments and therefore does basic comparisons
  */
 static inline gint
 _gst_value_compare_nolist (const GValue * value1, const GValue * value2)
@@ -7493,10 +7496,10 @@ G_STMT_START {                                                          \
 /* These initial sizes are used for the tables
  * below, and save a couple of reallocs at startup */
 
-static const gint GST_VALUE_TABLE_DEFAULT_SIZE = 35;
-static const gint GST_VALUE_UNION_TABLE_DEFAULT_SIZE = 4;
-static const gint GST_VALUE_INTERSECT_TABLE_DEFAULT_SIZE = 11;
-static const gint GST_VALUE_SUBTRACT_TABLE_DEFAULT_SIZE = 12;
+static const gint GST_VALUE_TABLE_DEFAULT_SIZE = 40;
+static const gint GST_VALUE_UNION_TABLE_DEFAULT_SIZE = 8;
+static const gint GST_VALUE_INTERSECT_TABLE_DEFAULT_SIZE = 16;
+static const gint GST_VALUE_SUBTRACT_TABLE_DEFAULT_SIZE = 16;
 
 void
 _priv_gst_value_initialize (void)
@@ -7683,22 +7686,22 @@ _priv_gst_value_initialize (void)
 #if GST_VERSION_NANO == 1
   /* If building from git master, check starting array sizes matched actual size
    * so we can keep the defines in sync and save a few reallocs on startup */
-  if (gst_value_table->len != GST_VALUE_TABLE_DEFAULT_SIZE) {
+  if (gst_value_table->len > GST_VALUE_TABLE_DEFAULT_SIZE) {
     GST_ERROR ("Wrong initial gst_value_table size. "
         "Please set GST_VALUE_TABLE_DEFAULT_SIZE to %u in gstvalue.c",
         gst_value_table->len);
   }
-  if (gst_value_union_funcs->len != GST_VALUE_UNION_TABLE_DEFAULT_SIZE) {
+  if (gst_value_union_funcs->len > GST_VALUE_UNION_TABLE_DEFAULT_SIZE) {
     GST_ERROR ("Wrong initial gst_value_union_funcs table size. "
         "Please set GST_VALUE_UNION_TABLE_DEFAULT_SIZE to %u in gstvalue.c",
         gst_value_union_funcs->len);
   }
-  if (gst_value_intersect_funcs->len != GST_VALUE_INTERSECT_TABLE_DEFAULT_SIZE) {
+  if (gst_value_intersect_funcs->len > GST_VALUE_INTERSECT_TABLE_DEFAULT_SIZE) {
     GST_ERROR ("Wrong initial gst_value_intersect_funcs table size. "
         "Please set GST_VALUE_INTERSECT_TABLE_DEFAULT_SIZE to %u in gstvalue.c",
         gst_value_intersect_funcs->len);
   }
-  if (gst_value_subtract_funcs->len != GST_VALUE_SUBTRACT_TABLE_DEFAULT_SIZE) {
+  if (gst_value_subtract_funcs->len > GST_VALUE_SUBTRACT_TABLE_DEFAULT_SIZE) {
     GST_ERROR ("Wrong initial gst_value_subtract_funcs table size. "
         "Please set GST_VALUE_SUBTRACT_TABLE_DEFAULT_SIZE to %u in gstvalue.c",
         gst_value_subtract_funcs->len);