summaryrefslogtreecommitdiff
path: root/glib/gvariant-core.c
diff options
context:
space:
mode:
authorChristian Persch <chpe@gnome.org>2010-06-19 16:42:11 +0200
committerChristian Persch <chpe@gnome.org>2010-06-19 19:07:36 +0200
commit052ef2614af7a8706035982d8211fff64241e83f (patch)
tree9a459d4378d42af83cbe46182902621a9d8e54d0 /glib/gvariant-core.c
parent7bb00fd0e8a18b3e20d30053579f002e587dfbbb (diff)
downloadglib-052ef2614af7a8706035982d8211fff64241e83f.tar.gz
Add g_variant_is_floating
Diffstat (limited to 'glib/gvariant-core.c')
-rw-r--r--glib/gvariant-core.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/glib/gvariant-core.c b/glib/gvariant-core.c
index e3597e484..2b8caa504 100644
--- a/glib/gvariant-core.c
+++ b/glib/gvariant-core.c
@@ -675,6 +675,30 @@ g_variant_ref_sink (GVariant *value)
}
/**
+ * g_variant_is_floating:
+ * @value: a #GVariant
+ * @returns: whether @value is floating
+ *
+ * Checks whether @value has a floating reference count.
+ *
+ * This function should only ever be used to assert that a given variant
+ * is or is not floating, or for debug purposes. To acquire a reference
+ * to a variant that might be floating, always use g_variant_ref_sink().
+ *
+ * See g_variant_ref_sink() for more information about floating reference
+ * counts.
+ *
+ * Since: 2.26
+ **/
+gboolean
+g_variant_is_floating (GVariant *value)
+{
+ g_return_val_if_fail (value != NULL, FALSE);
+
+ return (value->state & STATE_FLOATING) != 0;
+}
+
+/**
* g_variant_get_size:
* @value: a #GVariant instance
* @returns: the serialised size of @value