aboutsummaryrefslogtreecommitdiff
path: root/sway/tree/output.c
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2020-07-12 16:50:11 +0200
committerBrian Ashworth <bosrsf04@gmail.com>2020-07-13 17:33:54 -0400
commit9bb70283e967037e6d57bc863ef96d3b5185a989 (patch)
tree9bcfab4d539562acca0c55f9931442bf31cc3204 /sway/tree/output.c
parent39d677af15bd4c8cdea6b62fda80ac9a9e998045 (diff)
Assert output is found before removing from list
References: https://github.com/swaywm/sway/issues/5483
Diffstat (limited to 'sway/tree/output.c')
-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) {
if (!sway_assert(output->enabled, "Expected an enabled output")) {
return;
}
+ int index = list_find(root->outputs, output);
+ if (!sway_assert(index >= 0, "Output not found in root node")) {
+ return;
+ }
+
sway_log(SWAY_DEBUG, "Disabling output '%s'", output->wlr_output->name);
wl_signal_emit(&output->events.destroy, output);
@@ -258,7 +263,6 @@ void output_disable(struct sway_output *output) {
root_for_each_container(untrack_output, output);
- int index = list_find(root->outputs, output);
list_del(root->outputs, index);
output->enabled = false;