1b5975d6bSopenharmony_ciFrom 1da208cddc19cad05ccf4b798a99f7045e41ffc4 Mon Sep 17 00:00:00 2001
2b5975d6bSopenharmony_ciFrom: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= <mail@3v1n0.net>
3b5975d6bSopenharmony_ciDate: Fri, 2 Sep 2022 20:26:06 +0200
4b5975d6bSopenharmony_ciSubject: [PATCH] gio/tests/gdbus-proxy-threads: Unref GVariant's that we own
5b5975d6bSopenharmony_ci
6b5975d6bSopenharmony_ciThis test is leaking various GVariant's that we are supposed to unref,
7b5975d6bSopenharmony_cileading the valgrind CI job to complain about.
8b5975d6bSopenharmony_ci
9b5975d6bSopenharmony_ciHelps with: https://gitlab.gnome.org/GNOME/glib/-/issues/333
10b5975d6bSopenharmony_ci
11b5975d6bSopenharmony_ciConflict:NA
12b5975d6bSopenharmony_ciReference:https://gitlab.gnome.org/GNOME/glib/-/commit/1da208cddc19cad05ccf4b798a99f7045e41ffc4
13b5975d6bSopenharmony_ci
14b5975d6bSopenharmony_ci---
15b5975d6bSopenharmony_ci gio/tests/gdbus-proxy-threads.c | 12 ++++++++++--
16b5975d6bSopenharmony_ci 1 file changed, 10 insertions(+), 2 deletions(-)
17b5975d6bSopenharmony_ci
18b5975d6bSopenharmony_cidiff --git a/gio/tests/gdbus-proxy-threads.c b/gio/tests/gdbus-proxy-threads.c
19b5975d6bSopenharmony_ciindex 76b857e731..a0a38d07cd 100644
20b5975d6bSopenharmony_ci--- a/gio/tests/gdbus-proxy-threads.c
21b5975d6bSopenharmony_ci+++ b/gio/tests/gdbus-proxy-threads.c
22b5975d6bSopenharmony_ci@@ -119,13 +119,17 @@ request_name_cb (GObject *source,
23b5975d6bSopenharmony_ci   GDBusConnection *connection = G_DBUS_CONNECTION (source);
24b5975d6bSopenharmony_ci   GError *error = NULL;
25b5975d6bSopenharmony_ci   GVariant *var;
26b5975d6bSopenharmony_ci+  GVariant *child;
27b5975d6bSopenharmony_ci 
28b5975d6bSopenharmony_ci   var = g_dbus_connection_call_finish (connection, res, &error);
29b5975d6bSopenharmony_ci   g_assert_no_error (error);
30b5975d6bSopenharmony_ci-  g_assert_cmpuint (g_variant_get_uint32 (g_variant_get_child_value (var, 0)),
31b5975d6bSopenharmony_ci+  child = g_variant_get_child_value (var, 0);
32b5975d6bSopenharmony_ci+  g_assert_cmpuint (g_variant_get_uint32 (child),
33b5975d6bSopenharmony_ci                     ==, DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER);
34b5975d6bSopenharmony_ci 
35b5975d6bSopenharmony_ci   release_name (connection, TRUE);
36b5975d6bSopenharmony_ci+  g_variant_unref (child);
37b5975d6bSopenharmony_ci+  g_variant_unref (var);
38b5975d6bSopenharmony_ci }
39b5975d6bSopenharmony_ci 
40b5975d6bSopenharmony_ci static void
41b5975d6bSopenharmony_ci@@ -154,11 +158,13 @@ release_name_cb (GObject *source,
42b5975d6bSopenharmony_ci   GDBusConnection *connection = G_DBUS_CONNECTION (source);
43b5975d6bSopenharmony_ci   GError *error = NULL;
44b5975d6bSopenharmony_ci   GVariant *var;
45b5975d6bSopenharmony_ci+  GVariant *child;
46b5975d6bSopenharmony_ci   int i;
47b5975d6bSopenharmony_ci 
48b5975d6bSopenharmony_ci   var = g_dbus_connection_call_finish (connection, res, &error);
49b5975d6bSopenharmony_ci   g_assert_no_error (error);
50b5975d6bSopenharmony_ci-  g_assert_cmpuint (g_variant_get_uint32 (g_variant_get_child_value (var, 0)),
51b5975d6bSopenharmony_ci+  child = g_variant_get_child_value (var, 0);
52b5975d6bSopenharmony_ci+  g_assert_cmpuint (g_variant_get_uint32 (child),
53b5975d6bSopenharmony_ci                     ==, DBUS_RELEASE_NAME_REPLY_RELEASED);
54b5975d6bSopenharmony_ci 
55b5975d6bSopenharmony_ci   /* generate some rapid NameOwnerChanged signals to try to trigger crashes */
56b5975d6bSopenharmony_ci@@ -170,6 +176,8 @@ release_name_cb (GObject *source,
57b5975d6bSopenharmony_ci 
58b5975d6bSopenharmony_ci   /* wait for dbus-daemon to catch up */
59b5975d6bSopenharmony_ci   request_name (connection, TRUE);
60b5975d6bSopenharmony_ci+  g_variant_unref (child);
61b5975d6bSopenharmony_ci+  g_variant_unref (var);
62b5975d6bSopenharmony_ci }
63b5975d6bSopenharmony_ci 
64b5975d6bSopenharmony_ci static void
65b5975d6bSopenharmony_ci-- 
66b5975d6bSopenharmony_ciGitLab
67b5975d6bSopenharmony_ci
68