From a71111fdea69b3134b33fce899149ade274a8232 Mon Sep 17 00:00:00 2001 From: Simon Ser Date: Tue, 8 Nov 2022 17:43:49 +0100 Subject: scene: destroy addons before cleaning up internal state This allows addons to access wlr_scene_node/wlr_scene_surface fields to clean up themselves. --- wlr_scene.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/wlr_scene.c b/wlr_scene.c index 1be2d13..0eed588 100644 --- a/wlr_scene.c +++ b/wlr_scene.c @@ -87,6 +87,7 @@ void wlr_scene_node_destroy(struct wlr_scene_node *node) { // in case the destroy signal would like to remove children before they // are recursively destroyed. wl_signal_emit_mutable(&node->events.destroy, NULL); + wlr_addon_set_finish(&node->addons); wlr_scene_node_set_enabled(node, false); @@ -130,7 +131,6 @@ void wlr_scene_node_destroy(struct wlr_scene_node *node) { } } - wlr_addon_set_finish(&node->addons); wl_list_remove(&node->link); pixman_region32_fini(&node->visible); free(node); -- cgit v1.2.3