drm->compositor = compositor;
drm->fd = -1;
+ pepper_list_init(&drm->plane_list);
+ pepper_list_init(&drm->connector_list);
/* Find primary GPU udev device. Usually card0. */
udev_device = find_primary_gpu(udev);
drm->resources = drmModeGetResources(drm->fd);
PEPPER_CHECK(drm->resources, goto error, "drmModeGetResources() failed.\n");
- pepper_list_init(&drm->plane_list);
drm_init_connectors(drm);
drm_init_planes(drm);
udev_device_unref(udev_device);
error:
if (drm)
- {
- if (drm->resources)
- drmModeFreeResources(drm->resources);
-
- if (drm->udev_event_source)
- wl_event_source_remove(drm->udev_event_source);
-
- if (drm->drm_event_source)
- wl_event_source_remove(drm->drm_event_source);
-
- if (drm->udev_monitor)
- udev_monitor_unref(drm->udev_monitor);
-
- if (drm->fd != -1)
- close(drm->fd);
- }
+ pepper_drm_destroy(drm);
if (udev_device)
udev_device_unref(udev_device);
if (drm->resources)
drmModeFreeResources(drm->resources);
+ if (drm->udev_event_source)
+ wl_event_source_remove(drm->udev_event_source);
+
+ if (drm->drm_event_source)
+ wl_event_source_remove(drm->drm_event_source);
+
+ if (drm->udev_monitor)
+ udev_monitor_unref(drm->udev_monitor);
+
+ if (drm->fd != -1)
+ close(drm->fd);
+
free(drm);
}