]> git.mdlowis.com Git - proto/labwc.git/commitdiff
Fix some warnings from clang-tidy
authortokyo4j <hrak1529@gmail.com>
Mon, 28 Jul 2025 04:54:10 +0000 (13:54 +0900)
committerConsolatis <35009135+Consolatis@users.noreply.github.com>
Mon, 28 Jul 2025 13:27:45 +0000 (15:27 +0200)
Notably this fixes a possible null pointer dereference in warp_cursor()
when output_nearest_to_cursor() returns null.

src/action.c
src/input/cursor.c
src/xdg.c

index 6df6897933ee7c0d9c24bac59acba169537974c5..8bde50982dc708ef901008089a0821489f9ba393 100644 (file)
@@ -823,8 +823,9 @@ get_target_output(struct output *output, struct server *server,
 }
 
 static void
-warp_cursor(struct view *view, struct output *output, const char *to, const char *x, const char *y)
+warp_cursor(struct server *server, struct view *view, const char *to, const char *x, const char *y)
 {
+       struct output *output = output_nearest_to_cursor(server);
        struct wlr_box target_area = {0};
        int goto_x;
        int goto_y;
@@ -855,8 +856,8 @@ warp_cursor(struct view *view, struct output *output, const char *to, const char
                        target_area.y + target_area.height + offset_y;
        }
 
-       wlr_cursor_warp(output->server->seat.cursor, NULL, goto_x, goto_y);
-       cursor_update_focus(output->server);
+       wlr_cursor_warp(server->seat.cursor, NULL, goto_x, goto_y);
+       cursor_update_focus(server);
 }
 
 void
@@ -1352,9 +1353,7 @@ actions_run(struct view *activator, struct server *server,
                        const char *to = action_get_str(action, "to", "output");
                        const char *x = action_get_str(action, "x", "center");
                        const char *y = action_get_str(action, "y", "center");
-                       struct output *output = output_nearest_to_cursor(server);
-
-                       warp_cursor(view, output, to, x, y);
+                       warp_cursor(server, view, to, x, y);
                        break;
                }
                case ACTION_TYPE_HIDE_CURSOR:
index 6ce81dab80a5aa48c431abe6c30bc0a4565b127f..a0d9b3fd05918e8dc803fa166fd4521fc92d3d87 100644 (file)
@@ -302,6 +302,7 @@ process_cursor_resize(struct server *server, uint32_t time)
        static uint32_t last_resize_time = 0;
        static struct view *last_resize_view = NULL;
 
+       assert(server->grabbed_view);
        if (server->grabbed_view == last_resize_view) {
                int32_t refresh = 0;
                if (output_is_usable(last_resize_view->output)) {
index 5621e07eb68845699a2519fac2e3ca6b40ecaca1..be8cfc201790f9b4b2e68992b9fbc7a8abe9d020 100644 (file)
--- a/src/xdg.c
+++ b/src/xdg.c
@@ -1054,9 +1054,6 @@ static void
 handle_xdg_toplevel_icon_set_icon(struct wl_listener *listener, void *data)
 {
        struct wlr_xdg_toplevel_icon_manager_v1_set_icon_event *event = data;
-
-       struct server *server =
-               wl_container_of(listener, server, xdg_toplevel_icon_set_icon);
        struct wlr_xdg_surface *xdg_surface = event->toplevel->base;
        struct view *view = xdg_surface->data;
        assert(view);