#include static void test_clear (void) { GObject *o = NULL; GObject *tmp; g_clear_object (&o); g_assert (o == NULL); tmp = g_object_new (G_TYPE_OBJECT, NULL); g_assert_cmpint (tmp->ref_count, ==, 1); o = g_object_ref (tmp); g_assert (o != NULL); g_assert_cmpint (tmp->ref_count, ==, 2); g_clear_object (&o); g_assert_cmpint (tmp->ref_count, ==, 1); g_assert (o == NULL); g_object_unref (tmp); } int main (int argc, char **argv) { g_test_init (&argc, &argv, NULL); g_type_init (); g_test_add_func ("/object/clear", test_clear); return g_test_run (); }