From be050979684ae8779a56e4b0166cfb21d1935d35 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Thu, 22 Jun 2023 15:48:35 +0200 Subject: output: add wlr_output_state_init() This changes the semantics of wlr_output_state. Instead of having fields with uninitialized memory when missing from the committed bitflag, all fields are always initialized (and maybe NULL/empty), just like we do in wlr_surface_state. This reduces the chances of footguns when reading a field, and removes the need to check for the committed bitfield everywhere. A new wlr_output_state_init() function takes care of initializing the Pixman region. --- backend/x11/output.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) (limited to 'backend/x11/output.c') diff --git a/backend/x11/output.c b/backend/x11/output.c index 517ea85b..0fd9b9c5 100644 --- a/backend/x11/output.c +++ b/backend/x11/output.c @@ -623,12 +623,11 @@ void handle_x11_configure_notify(struct wlr_x11_output *output, return; } - struct wlr_output_state state = { - .committed = WLR_OUTPUT_STATE_MODE, - .mode_type = WLR_OUTPUT_STATE_MODE_CUSTOM, - .custom_mode = { .width = ev->width, .height = ev->height }, - }; + struct wlr_output_state state; + wlr_output_state_init(&state); + wlr_output_state_set_custom_mode(&state, ev->width, ev->height, 0); wlr_output_send_request_state(&output->wlr_output, &state); + wlr_output_state_finish(&state); } bool wlr_output_is_x11(struct wlr_output *wlr_output) { -- cgit v1.2.3