vulkan: Don't leak references
gdk_vulkan_init_dmabuf takes a Vulkan reference. It is dropped in gdk_display_dispose, but only if we get as far as setting vk_dmabuf_formats. Therefore, we must drop the reference if we take an early exit before that happens. Related: #7150
This commit is contained in:
@@ -1940,10 +1940,15 @@ gdk_vulkan_init_dmabuf (GdkDisplay *display)
|
|||||||
if (display->vk_dmabuf_formats != NULL)
|
if (display->vk_dmabuf_formats != NULL)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!gdk_has_feature (GDK_FEATURE_DMABUF) ||
|
if (!gdk_has_feature (GDK_FEATURE_DMABUF))
|
||||||
!gdk_display_init_vulkan (display, NULL) ||
|
return;
|
||||||
((display->vulkan_features & GDK_VULKAN_FEATURE_DMABUF) == 0))
|
|
||||||
|
if (!gdk_display_init_vulkan (display, NULL))
|
||||||
|
return;
|
||||||
|
|
||||||
|
if ((display->vulkan_features & GDK_VULKAN_FEATURE_DMABUF) == 0)
|
||||||
{
|
{
|
||||||
|
gdk_display_unref_vulkan (display);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user