aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
authorsunzhguy <sunzhigang1@kylinos.cn>2023-11-17 11:21:35 +0800
committersunzhguy <sunzhigang1@kylinos.cn>2023-11-17 12:38:21 +0800
commitc9c9dd6a5b866055a6a39fd78e55f6d5797fec28 (patch)
treee992bbcfff611e87e35d683de1e9004ad1484376 /backend
parent92dabc3a01c7963e32667453107b46c6480f7d4b (diff)
backend/drm: free fb later
since 4932e0d347f("backend/drm: ensure plane surfaces are cleaned up on shutdown") at finish_drm_resources called drm_plane_finsh_surface has already free the fb Signed-off-by: zhoulei zhoulei@kylinos.cn Signed-off-by: sunzhguy <sunzhigang1@kylinos.cn>
Diffstat (limited to 'backend')
-rw-r--r--backend/drm/backend.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/backend/drm/backend.c b/backend/drm/backend.c
index 26cd78e2..e6c709bf 100644
--- a/backend/drm/backend.c
+++ b/backend/drm/backend.c
@@ -41,11 +41,6 @@ static void backend_destroy(struct wlr_backend *backend) {
wlr_backend_finish(backend);
- struct wlr_drm_fb *fb, *fb_tmp;
- wl_list_for_each_safe(fb, fb_tmp, &drm->fbs, link) {
- drm_fb_destroy(fb);
- }
-
wl_list_remove(&drm->display_destroy.link);
wl_list_remove(&drm->session_destroy.link);
wl_list_remove(&drm->session_active.link);
@@ -59,6 +54,11 @@ static void backend_destroy(struct wlr_backend *backend) {
finish_drm_resources(drm);
+ struct wlr_drm_fb *fb, *fb_tmp;
+ wl_list_for_each_safe(fb, fb_tmp, &drm->fbs, link) {
+ drm_fb_destroy(fb);
+ }
+
free(drm->name);
wlr_session_close_file(drm->session, drm->dev);
wl_event_source_remove(drm->drm_event);