mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2025-10-29 05:40:12 -04:00
drm_lease_v1: initialize device resource link during abnormal exit
Signed-off-by: liupeng <liupeng01@kylinos.cn>
This commit is contained in:
parent
cdd2c7e006
commit
5e5842cb1a
1 changed files with 2 additions and 2 deletions
|
|
@ -453,10 +453,12 @@ static void lease_device_bind(struct wl_client *wl_client, void *data,
|
||||||
if (!device) {
|
if (!device) {
|
||||||
wlr_log(WLR_DEBUG, "Failed to bind lease device, "
|
wlr_log(WLR_DEBUG, "Failed to bind lease device, "
|
||||||
"the wlr_drm_lease_device_v1 has been destroyed");
|
"the wlr_drm_lease_device_v1 has been destroyed");
|
||||||
|
wl_list_init(wl_resource_get_link(device_resource));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
wl_resource_set_user_data(device_resource, device);
|
wl_resource_set_user_data(device_resource, device);
|
||||||
|
wl_list_insert(&device->resources, wl_resource_get_link(device_resource));
|
||||||
|
|
||||||
int fd = wlr_drm_backend_get_non_master_fd(device->backend);
|
int fd = wlr_drm_backend_get_non_master_fd(device->backend);
|
||||||
if (fd < 0) {
|
if (fd < 0) {
|
||||||
|
|
@ -468,8 +470,6 @@ static void lease_device_bind(struct wl_client *wl_client, void *data,
|
||||||
wp_drm_lease_device_v1_send_drm_fd(device_resource, fd);
|
wp_drm_lease_device_v1_send_drm_fd(device_resource, fd);
|
||||||
close(fd);
|
close(fd);
|
||||||
|
|
||||||
wl_list_insert(&device->resources, wl_resource_get_link(device_resource));
|
|
||||||
|
|
||||||
struct wlr_drm_lease_connector_v1 *connector;
|
struct wlr_drm_lease_connector_v1 *connector;
|
||||||
wl_list_for_each(connector, &device->connectors, link) {
|
wl_list_for_each(connector, &device->connectors, link) {
|
||||||
drm_lease_connector_v1_send_to_client(connector, device_resource);
|
drm_lease_connector_v1_send_to_client(connector, device_resource);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue