diff options
| author | Furkan Sahin <furkan-dev@proton.me> | 2026-01-06 00:19:57 +0100 |
|---|---|---|
| committer | Furkan Sahin <furkan-dev@proton.me> | 2026-01-06 00:19:57 +0100 |
| commit | 5c5da9bdce7d9e6ee327ae0aae4290cbc46f2e1b (patch) | |
| tree | 2c9e9010ce436da187a7b08fc0e38f953f1f5b6a | |
| parent | 9e468fa0118632b5d6d5e22191260e948e815d3d (diff) | |
Use goto-based error handling in view_init()
This is less surprising than checking for the failed flag in the
happy path.
| -rw-r--r-- | sway/tree/view.c | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/sway/tree/view.c b/sway/tree/view.c index be813be9..7fd06697 100644 --- a/sway/tree/view.c +++ b/sway/tree/view.c @@ -43,20 +43,17 @@ bool view_init(struct sway_view *view, enum sway_view_type type, bool failed = false; view->scene_tree = alloc_scene_tree(root->staging, &failed); view->content_tree = alloc_scene_tree(view->scene_tree, &failed); + if (failed) { + goto err; + } - if (!failed && !scene_descriptor_assign(&view->scene_tree->node, - SWAY_SCENE_DESC_VIEW, view)) { - failed = true; + if (!scene_descriptor_assign(&view->scene_tree->node, SWAY_SCENE_DESC_VIEW, view)) { + goto err; } view->image_capture_scene = wlr_scene_create(); if (view->image_capture_scene == NULL) { - failed = true; - } - - if (failed) { - wlr_scene_node_destroy(&view->scene_tree->node); - return false; + goto err; } view->type = type; @@ -67,6 +64,10 @@ bool view_init(struct sway_view *view, enum sway_view_type type, view->tearing_mode = TEARING_WINDOW_HINT; wl_signal_init(&view->events.unmap); return true; + +err: + wlr_scene_node_destroy(&view->scene_tree->node); + return false; } void view_destroy(struct sway_view *view) { |
