vulkan: fix some leaks
authorTim-Philipp Müller <tim@centricular.com>
Thu, 7 Mar 2019 19:26:56 +0000 (19:26 +0000)
committerTim-Philipp Müller <tim@centricular.com>
Fri, 8 Mar 2019 01:18:39 +0000 (01:18 +0000)
Fix vk_instance leak when state change fails like in
generic/states unit test.

ext/vulkan/vkupload.c
ext/vulkan/vkutils.c

index ffe963e..6a139af 100644 (file)
@@ -522,6 +522,8 @@ gst_vulkan_upload_finalize (GObject * object)
   for (i = 0; i < G_N_ELEMENTS (upload_methods); i++) {
     upload_methods[i]->free (vk_upload->upload_impls[i]);
   }
+  g_free (vk_upload->upload_impls);
+  vk_upload->upload_impls = NULL;
 
   G_OBJECT_CLASS (parent_class)->finalize (object);
 }
index 1c25cb8..aaa6bba 100644 (file)
@@ -247,6 +247,8 @@ gst_vulkan_ensure_element_data (gpointer element,
     if (!gst_vulkan_instance_open (*instance_ptr, &error)) {
       GST_ELEMENT_ERROR (element, RESOURCE, NOT_FOUND,
           ("Failed to create vulkan instance"), ("%s", error->message));
+      gst_object_unref (*instance_ptr);
+      *instance_ptr = NULL;
       g_clear_error (&error);
       return FALSE;
     }