Merge branch 'variant-depth-init' into 'master'

gvariant: Ensure GVS.depth is initialised

See merge request GNOME/glib!1620
This commit is contained in:
Sebastian Dröge 2020-08-18 09:11:34 +00:00
commit c50fb4f317
3 changed files with 18 additions and 0 deletions

View File

@ -666,6 +666,21 @@ g_variant_is_trusted (GVariant *value)
return (value->state & STATE_TRUSTED) != 0; return (value->state & STATE_TRUSTED) != 0;
} }
/* < internal >
* g_variant_get_depth:
* @value: a #GVariant
*
* Gets the nesting depth of a #GVariant. This is 0 for a #GVariant with no
* children.
*
* Returns: nesting depth of @value
*/
gsize
g_variant_get_depth (GVariant *value)
{
return value->depth;
}
/* -- public -- */ /* -- public -- */
/** /**

View File

@ -34,4 +34,6 @@ gboolean g_variant_is_trusted (GVarian
GVariantTypeInfo * g_variant_get_type_info (GVariant *value); GVariantTypeInfo * g_variant_get_type_info (GVariant *value);
gsize g_variant_get_depth (GVariant *value);
#endif /* __G_VARIANT_CORE_H__ */ #endif /* __G_VARIANT_CORE_H__ */

View File

@ -5952,6 +5952,7 @@ g_variant_byteswap (GVariant *value)
serialised.type_info = g_variant_get_type_info (trusted); serialised.type_info = g_variant_get_type_info (trusted);
serialised.size = g_variant_get_size (trusted); serialised.size = g_variant_get_size (trusted);
serialised.data = g_malloc (serialised.size); serialised.data = g_malloc (serialised.size);
serialised.depth = g_variant_get_depth (trusted);
g_variant_store (trusted, serialised.data); g_variant_store (trusted, serialised.data);
g_variant_unref (trusted); g_variant_unref (trusted);