vksink: only unref if the pointers are non-NULL
authorMatthew Waters <matthew@centricular.com>
Wed, 10 Feb 2016 07:58:32 +0000 (18:58 +1100)
committerMatthew Waters <matthew@centricular.com>
Tue, 16 Feb 2016 14:13:43 +0000 (01:13 +1100)
ext/vulkan/vksink.c

index f3eff34f2ca4a2c0b5beedadf200c4ac9ea2af63..f0837e68411178ccafd485248431857fbbf1834d 100644 (file)
@@ -299,16 +299,22 @@ gst_vulkan_sink_change_state (GstElement * element, GstStateChange transition)
     case GST_STATE_CHANGE_PAUSED_TO_READY:
       break;
     case GST_STATE_CHANGE_READY_TO_NULL:
-      gst_object_unref (vk_sink->swapper);
+      if (vk_sink->swapper)
+        gst_object_unref (vk_sink->swapper);
       vk_sink->swapper = NULL;
-      gst_object_unref (vk_sink->display);
+      if (vk_sink->display)
+        gst_object_unref (vk_sink->display);
       vk_sink->display = NULL;
-      gst_vulkan_window_close (vk_sink->window);
-      gst_object_unref (vk_sink->window);
+      if (vk_sink->window) {
+        gst_vulkan_window_close (vk_sink->window);
+        gst_object_unref (vk_sink->window);
+      }
       vk_sink->window = NULL;
-      gst_object_unref (vk_sink->device);
+      if (vk_sink->device)
+        gst_object_unref (vk_sink->device);
       vk_sink->device = NULL;
-      gst_object_unref (vk_sink->instance);
+      if (vk_sink->instance)
+        gst_object_unref (vk_sink->instance);
       vk_sink->instance = NULL;
       break;
     default: