Add boxing for GTree

Closes issue #1233
This commit is contained in:
Andrew Potter
2019-08-09 10:34:47 +02:00
committed by Philip Withnall
parent 7bfd6278b9
commit 3dc62171eb
4 changed files with 43 additions and 0 deletions

View File

@@ -617,6 +617,34 @@ test_boxed_checksum (void)
g_value_unset (&value);
}
static gint
treecmp (gconstpointer a, gconstpointer b)
{
return (a < b) ? -1 : (a > b);
}
static void
test_boxed_tree (void)
{
GTree *t, *t2;
GValue value = G_VALUE_INIT;
g_value_init (&value, G_TYPE_TREE);
g_assert_true (G_VALUE_HOLDS_BOXED (&value));
t = g_tree_new (treecmp);
g_value_take_boxed (&value, t);
t2 = g_value_get_boxed (&value);
g_assert_true (t == t2);
t2 = g_value_dup_boxed (&value);
g_assert_true (t == t2); /* trees use ref/unref for copy/free */
g_tree_unref (t2);
g_value_unset (&value);
}
int
main (int argc, char *argv[])
{
@@ -646,6 +674,7 @@ main (int argc, char *argv[])
g_test_add_func ("/boxed/markup", test_boxed_markup);
g_test_add_func ("/boxed/thread", test_boxed_thread);
g_test_add_func ("/boxed/checksum", test_boxed_checksum);
g_test_add_func ("/boxed/tree", test_boxed_tree);
return g_test_run ();
}