diff options
author | Drew DeVault <sir@cmpwn.com> | 2017-11-01 14:44:38 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-01 14:44:38 -0400 |
commit | 697a24137b67bb50b52c5307a3f7cdebbc9509b8 (patch) | |
tree | f3234f8f9ede9c1ba7a8d918b022a86a0d3c7986 /backend/drm | |
parent | 1d0973f6c86ac62f03cbec89ceee5211c21dbab1 (diff) | |
parent | e3ee2cd9c7e9abe6614dded927787f8138f739f4 (diff) |
Merge pull request #376 from martinetd/rootston_exit
Fix rootston exit segfaults
Diffstat (limited to 'backend/drm')
-rw-r--r-- | backend/drm/backend.c | 4 | ||||
-rw-r--r-- | backend/drm/drm.c | 2 |
2 files changed, 4 insertions, 2 deletions
diff --git a/backend/drm/backend.c b/backend/drm/backend.c index af2619ff..87a4f708 100644 --- a/backend/drm/backend.c +++ b/backend/drm/backend.c @@ -29,8 +29,8 @@ static void wlr_drm_backend_destroy(struct wlr_backend *backend) { wlr_drm_restore_outputs(drm); - struct wlr_drm_connector *conn; - wl_list_for_each(conn, &drm->outputs, link) { + struct wlr_drm_connector *conn, *next; + wl_list_for_each_safe(conn, next, &drm->outputs, link) { wlr_output_destroy(&conn->output); } diff --git a/backend/drm/drm.c b/backend/drm/drm.c index 08e6296b..dd247998 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -645,6 +645,7 @@ static void wlr_drm_connector_destroy(struct wlr_output *output) { struct wlr_drm_connector *conn = (struct wlr_drm_connector *)output; wlr_drm_connector_cleanup(conn); wl_event_source_remove(conn->retry_pageflip); + wl_list_remove(&conn->link); free(conn); } @@ -823,6 +824,7 @@ void wlr_drm_scan_connectors(struct wlr_drm_backend *drm) { drmModeFreeCrtc(conn->old_crtc); wl_event_source_remove(conn->retry_pageflip); + wl_list_remove(&conn->link); free(conn); } } |