diff --git a/glib/gvariant.c b/glib/gvariant.c index 6ff77143f..5f2337cf7 100644 --- a/glib/gvariant.c +++ b/glib/gvariant.c @@ -2748,6 +2748,10 @@ g_variant_compare (gconstpointer one, switch (g_variant_classify (a)) { + case G_VARIANT_CLASS_BOOLEAN: + return g_variant_get_boolean (a) - + g_variant_get_boolean (b); + case G_VARIANT_CLASS_BYTE: return ((gint) g_variant_get_byte (a)) - ((gint) g_variant_get_byte (b)); diff --git a/glib/tests/gvariant.c b/glib/tests/gvariant.c index 7f7d56cf2..d3d8aa2fc 100644 --- a/glib/tests/gvariant.c +++ b/glib/tests/gvariant.c @@ -4079,6 +4079,11 @@ test_compare (void) g_assert (g_variant_compare (a, b) < 0); g_variant_unref (a); g_variant_unref (b); + a = g_variant_new_boolean (FALSE); + b = g_variant_new_boolean (TRUE); + g_assert (g_variant_compare (a, b) < 0); + g_variant_unref (a); + g_variant_unref (b); } static void