commit 68d6307aa67f2aab16bfbbf56427666cde964a6c
parent a2164c666197e983b2059647e31fd93491893c43
Author: Drew DeVault <sir@cmpwn.com>
Date: Sat, 28 Jul 2018 09:05:04 -0400
Merge pull request #2365 from RyanDwyer/fix-cmd-defer-crash
Fix crash when a deferred command destroys a workspace
Diffstat:
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/sway/tree/container.c b/sway/tree/container.c
@@ -142,8 +142,6 @@ struct sway_container *container_create(enum sway_container_type type) {
static void container_workspace_free(struct sway_workspace *ws) {
list_foreach(ws->output_priority, free);
list_free(ws->output_priority);
- ws->floating->destroying = true;
- container_free(ws->floating);
free(ws);
}
@@ -196,6 +194,9 @@ void container_free(struct sway_container *cont) {
free(cont);
}
+static struct sway_container *container_destroy_noreaping(
+ struct sway_container *con);
+
static struct sway_container *container_workspace_destroy(
struct sway_container *workspace) {
if (!sway_assert(workspace, "cannot destroy null workspace")) {
@@ -240,6 +241,8 @@ static struct sway_container *container_workspace_destroy(
}
}
+ container_destroy_noreaping(workspace->sway_workspace->floating);
+
return output;
}