Handle the case when the input swapchain is NULL 93/149693/4
authorxuelian.bai <xuelian.bai@samsung.com>
Wed, 13 Sep 2017 10:01:14 +0000 (18:01 +0800)
committerHoyub Lee <hoyub.lee@samsung.com>
Fri, 29 Sep 2017 02:29:46 +0000 (02:29 +0000)
Change-Id: If213af9a7bddeffa9a0608b2d709a91580bfdef3
Signed-off-by: Xuelian Bai <xuelian.bai@samsung.com>
Reviewed-by: Hoyub Lee <hoyub.lee@samsung.com>
src/wsi/swapchain.c

index 0f839dc..195c16a 100644 (file)
@@ -203,19 +203,21 @@ vk_DestroySwapchainKHR(VkDevice                                            device,
        vk_icd_t                                *icd = vk_get_icd();
        PFN_vkGetDeviceProcAddr  icd_gdpa = (PFN_vkGetDeviceProcAddr)icd->get_proc_addr(NULL, "vkGetDeviceProcAddr");
 
-       if (icd_gdpa != VK_NULL_HANDLE) {
-               PFN_vkDestroyImage               destroy_image = (PFN_vkDestroyImage)icd_gdpa(device, "vkDestroyImage");
-               if (destroy_image != VK_NULL_HANDLE) {
-                       uint32_t                 i;
-
-                       for (i = 0; i < chain->buffer_count; i++)
-                               destroy_image(device, chain->buffers[i].image, &chain->allocator);
+       if (chain != VK_NULL_HANDLE) {
+               if (icd_gdpa != VK_NULL_HANDLE) {
+                       PFN_vkDestroyImage               destroy_image = (PFN_vkDestroyImage)icd_gdpa(device, "vkDestroyImage");
+                       if (destroy_image != VK_NULL_HANDLE) {
+                               uint32_t                 i;
+
+                               for (i = 0; i < chain->buffer_count; i++)
+                                       destroy_image(device, chain->buffers[i].image, &chain->allocator);
+                       }
                }
-       }
 
-       chain->deinit(device, chain);
-       vk_free(&chain->allocator, chain->buffers);
-       vk_free(&chain->allocator, chain);
+               chain->deinit(device, chain);
+               vk_free(&chain->allocator, chain->buffers);
+               vk_free(&chain->allocator, chain);
+       }
 }
 
 VKAPI_ATTR VkResult VKAPI_CALL