river-status: fix output status destruction

There was a use-after-free if the Output was destroyed first, and the
memory of the output status was leaked.
This commit is contained in:
Isaac Freund
2021-08-12 22:38:08 +02:00
parent d4c249a5cb
commit 6e51a8fcdd
2 changed files with 10 additions and 2 deletions

View File

@ -203,6 +203,8 @@ pub fn removeOutput(self: *Self, output: *Output) void {
// Destroy all layouts of the output
while (output.layouts.first) |layout_node| layout_node.data.destroy();
while (output.status_trackers.first) |status_node| status_node.data.destroy();
// Arrange the root in case evacuated views affect the layout
fallback_output.arrangeViews();
self.startTransaction();