aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Simon Ser <contact@emersion.fr>2020-07-12 16:50:11 +0200
committerLibravatar Simon Ser <contact@emersion.fr>2020-07-15 19:27:13 +0200
commit863b9c8ad9c56ea2f984edce53d46b184c9ae698 (patch)
treea11c40a1cc1b62877b28518f6c2b61fa7f7afee1
parentrephrase swayidle-timout example to improve readability (diff)
downloadsway-863b9c8ad9c56ea2f984edce53d46b184c9ae698.tar.gz
sway-863b9c8ad9c56ea2f984edce53d46b184c9ae698.tar.zst
sway-863b9c8ad9c56ea2f984edce53d46b184c9ae698.zip
Assert output is found before removing from list
References: https://github.com/swaywm/sway/issues/5483 (cherry picked from commit 9bb70283e967037e6d57bc863ef96d3b5185a989)
-rw-r--r--sway/tree/output.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sway/tree/output.c b/sway/tree/output.c
index ae3c3abf..d600c5c3 100644
--- a/sway/tree/output.c
+++ b/sway/tree/output.c
@@ -251,6 +251,11 @@ void output_disable(struct sway_output *output) {
251 if (!sway_assert(output->enabled, "Expected an enabled output")) { 251 if (!sway_assert(output->enabled, "Expected an enabled output")) {
252 return; 252 return;
253 } 253 }
254 int index = list_find(root->outputs, output);
255 if (!sway_assert(index >= 0, "Output not found in root node")) {
256 return;
257 }
258
254 sway_log(SWAY_DEBUG, "Disabling output '%s'", output->wlr_output->name); 259 sway_log(SWAY_DEBUG, "Disabling output '%s'", output->wlr_output->name);
255 wl_signal_emit(&output->events.destroy, output); 260 wl_signal_emit(&output->events.destroy, output);
256 261
@@ -258,7 +263,6 @@ void output_disable(struct sway_output *output) {
258 263
259 root_for_each_container(untrack_output, output); 264 root_for_each_container(untrack_output, output);
260 265
261 int index = list_find(root->outputs, output);
262 list_del(root->outputs, index); 266 list_del(root->outputs, index);
263 267
264 output->enabled = false; 268 output->enabled = false;