diff options
author | Brian Ashworth <bosrsf04@gmail.com> | 2019-02-21 13:24:13 -0500 |
---|---|---|
committer | Drew DeVault <sir@cmpwn.com> | 2019-02-25 17:10:04 -0500 |
commit | 42d25555293db5489036b0cd4128f6f45e383637 (patch) | |
tree | 1343100e914d7a29e38cfae078fe9225931032e0 /sway/commands/sticky.c | |
parent | output_get_active_workspace: check workspaces length (diff) | |
download | sway-42d25555293db5489036b0cd4128f6f45e383637.tar.gz sway-42d25555293db5489036b0cd4128f6f45e383637.tar.zst sway-42d25555293db5489036b0cd4128f6f45e383637.zip |
Handle NULL from output_get_active_workspace
This modifies the places where output_get_active_workspace is called to
handle a NULL result. Some places already handled it and did not need a
change, some just have guard off code blocks, others return errors, and
some have sway_asserts since the case should never happen. A lot of this
is probably just safety precautions since they probably will never be
called when `output_get_active_workspace` is not fully configured with a
workspace.
Diffstat (limited to 'sway/commands/sticky.c')
-rw-r--r-- | sway/commands/sticky.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/sway/commands/sticky.c b/sway/commands/sticky.c index 5b70199c..9df1fe09 100644 --- a/sway/commands/sticky.c +++ b/sway/commands/sticky.c | |||
@@ -9,6 +9,7 @@ | |||
9 | #include "sway/tree/view.h" | 9 | #include "sway/tree/view.h" |
10 | #include "sway/tree/workspace.h" | 10 | #include "sway/tree/workspace.h" |
11 | #include "list.h" | 11 | #include "list.h" |
12 | #include "log.h" | ||
12 | #include "util.h" | 13 | #include "util.h" |
13 | 14 | ||
14 | struct cmd_results *cmd_sticky(int argc, char **argv) { | 15 | struct cmd_results *cmd_sticky(int argc, char **argv) { |
@@ -29,6 +30,11 @@ struct cmd_results *cmd_sticky(int argc, char **argv) { | |||
29 | // move container to active workspace | 30 | // move container to active workspace |
30 | struct sway_workspace *active_workspace = | 31 | struct sway_workspace *active_workspace = |
31 | output_get_active_workspace(container->workspace->output); | 32 | output_get_active_workspace(container->workspace->output); |
33 | if (!sway_assert(active_workspace, | ||
34 | "Expected output to have a workspace")) { | ||
35 | return cmd_results_new(CMD_FAILURE, | ||
36 | "Expected output to have a workspace"); | ||
37 | } | ||
32 | if (container->workspace != active_workspace) { | 38 | if (container->workspace != active_workspace) { |
33 | struct sway_workspace *old_workspace = container->workspace; | 39 | struct sway_workspace *old_workspace = container->workspace; |
34 | container_detach(container); | 40 | container_detach(container); |