summaryrefslogtreecommitdiff
blob: d56db89bbacda4bb091f3ff714f1b3eaf95f91f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
From 37e49e8a22c223b030297f9607bdb748c219e060 Mon Sep 17 00:00:00 2001
From: Philip Withnall <pwithnall@gnome.org>
Date: Tue, 28 May 2024 18:08:27 +0100
Subject: [PATCH] shell-camera-monitor: Fix warning about strict aliasing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Changing type when casting a double pointer is not strictly allowed in
C. In order to fix compilation with `-fstrict-aliasing`, don’t use
`g_clear_pointer()` for clearing this pointer where the type expected by
the destroy notify function does not match the type stored in the
`ShellCameraMonitor` struct.

This introduces no functional changes.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3351>
---
 src/shell-camera-monitor.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/src/shell-camera-monitor.c b/src/shell-camera-monitor.c
index 1e2e0f14569..b2e6e0b2af2 100644
--- a/src/shell-camera-monitor.c
+++ b/src/shell-camera-monitor.c
@@ -298,7 +298,11 @@ shell_camera_monitor_disconnect_core (ShellCameraMonitor *monitor)
   g_clear_handle_id (&monitor->delayed_disable_id, g_source_remove);
 
   spa_hook_remove (&monitor->registry_listener);
-  g_clear_pointer ((struct pw_proxy**) &monitor->registry, pw_proxy_destroy);
+  if (monitor->registry != NULL)
+    {
+      pw_proxy_destroy ((struct pw_proxy *) monitor->registry);
+      monitor->registry = NULL;
+    }
   spa_hook_remove (&monitor->core_listener);
   g_clear_pointer (&monitor->core, pw_core_disconnect);
 }
-- 
GitLab