Merge branch 'wip/smcv/gdbus-clear-signal' into 'main'

gdbus: Add g_clear_dbus_signal_subscription() inline convenience function

See merge request GNOME/glib!4493
This commit is contained in:
Philip Withnall
2025-02-20 00:48:33 +00:00
2 changed files with 56 additions and 9 deletions

View File

@@ -793,12 +793,18 @@ test_connection_signals (void)
g_assert_cmpint (count_s4, ==, 2);
g_assert_cmpint (count_s5, ==, 1);
g_dbus_connection_signal_unsubscribe (c1, g_steal_handle_id (&s1));
g_dbus_connection_signal_unsubscribe (c1, g_steal_handle_id (&s2));
g_dbus_connection_signal_unsubscribe (c1, g_steal_handle_id (&s3));
g_dbus_connection_signal_unsubscribe (c1, g_steal_handle_id (&s1b));
g_dbus_connection_signal_unsubscribe (c1, g_steal_handle_id (&s4));
g_dbus_connection_signal_unsubscribe (c1, g_steal_handle_id (&s5));
g_assert_cmpuint (s1, !=, 0);
g_clear_dbus_signal_subscription (&s1, c1);
g_assert_cmpuint (s1, ==, 0);
/* g_clear_dbus_signal_subscription() is idempotent, with no warnings */
g_clear_dbus_signal_subscription (&s1, c1);
g_assert_cmpuint (s1, ==, 0);
g_clear_dbus_signal_subscription (&s2, c1);
g_clear_dbus_signal_subscription (&s3, c1);
g_clear_dbus_signal_subscription (&s1b, c1);
g_clear_dbus_signal_subscription (&s4, c1);
g_clear_dbus_signal_subscription (&s5, c1);
g_object_unref (c1);
g_object_unref (c2);
@@ -852,8 +858,8 @@ test_match_rule (GDBusConnection *connection,
g_assert_cmpint (emissions, ==, 1);
g_assert_cmpint (matches, ==, should_match ? 1 : 0);
g_dbus_connection_signal_unsubscribe (connection, g_steal_handle_id (&subscription_ids[0]));
g_dbus_connection_signal_unsubscribe (connection, g_steal_handle_id (&subscription_ids[1]));
g_clear_dbus_signal_subscription (&subscription_ids[0], connection);
g_clear_dbus_signal_subscription (&subscription_ids[1], connection);
}
static void
@@ -1132,7 +1138,7 @@ test_connection_filter (void)
timeout_mainloop_id = g_timeout_add (30000, test_connection_filter_on_timeout, NULL);
g_main_loop_run (loop);
g_source_remove (timeout_mainloop_id);
g_dbus_connection_signal_unsubscribe (c, g_steal_handle_id (&signal_handler_id));
g_clear_dbus_signal_subscription (&signal_handler_id, c);
/* now test some combinations... */
filter_id = g_dbus_connection_add_filter (c,