summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Ser <[email protected]>2021-10-27 15:42:08 +0200
committerIsaac Freund <[email protected]>2021-10-27 16:18:10 +0200
commite17a0b7eae81901f55fce785eb090543288d5d2d (patch)
tree1f00f03f60caf57f14eafa00e02ebfeaf2598c6f
parent45f5723ecb93fad6705bddc01e899af0bea5072d (diff)
scene: inline subsurface_tree_destroy
This is only called from one function. To destroy the wlr_scene_subsurface_tree from elsewhere, callers can destroy the scene-graph node returned by wlr_scene_subsurface_tree_create instead (just like a compositor would do). subsurface_tree_handle_surface_destroy does exactly this. Inlining avoids calling subsurface_tree_destroy by mistake.
-rw-r--r--subsurface_tree.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/subsurface_tree.c b/subsurface_tree.c
index 7cfa882..cd8d23d 100644
--- a/subsurface_tree.c
+++ b/subsurface_tree.c
@@ -22,7 +22,10 @@ struct wlr_scene_subsurface_tree {
struct wl_listener surface_new_subsurface;
};
-static void subsurface_tree_destroy(struct wlr_scene_subsurface_tree *subsurface_tree) {
+static void subsurface_tree_handle_tree_destroy(struct wl_listener *listener,
+ void *data) {
+ struct wlr_scene_subsurface_tree *subsurface_tree =
+ wl_container_of(listener, subsurface_tree, tree_destroy);
// tree and scene_surface will be cleaned up by scene_node_finish
if (subsurface_tree->parent) {
wlr_addon_finish(&subsurface_tree->surface_addon);
@@ -34,13 +37,6 @@ static void subsurface_tree_destroy(struct wlr_scene_subsurface_tree *subsurface
free(subsurface_tree);
}
-static void subsurface_tree_handle_tree_destroy(struct wl_listener *listener,
- void *data) {
- struct wlr_scene_subsurface_tree *subsurface_tree =
- wl_container_of(listener, subsurface_tree, tree_destroy);
- subsurface_tree_destroy(subsurface_tree);
-}
-
static void subsurface_tree_handle_surface_destroy(struct wl_listener *listener,
void *data) {
struct wlr_scene_subsurface_tree *subsurface_tree =