loader: device array dealloc fix
authorMarcin Kańtoch <marcin.kantoch@amd.com>
Thu, 23 Jun 2022 15:46:34 +0000 (17:46 +0200)
committerCharles Giessen <46324611+charles-lunarg@users.noreply.github.com>
Fri, 24 Jun 2022 20:08:04 +0000 (14:08 -0600)
loader/loader.c

index da63d0d7221e841c544fc1911eedbb106ab4c3c8..48a4d5b6fb20989e208444e188772b7f1001677e 100644 (file)
@@ -5448,6 +5448,13 @@ VKAPI_ATTR void VKAPI_CALL terminator_DestroyInstance(VkInstance instance, const
     loader_scanned_icd_clear(ptr_instance, &ptr_instance->icd_tramp_list);
     loader_destroy_generic_list(ptr_instance, (struct loader_generic_list *)&ptr_instance->ext_list);
     if (NULL != ptr_instance->phys_devs_term) {
+        for (uint32_t i = 0; i < ptr_instance->phys_dev_count_term; i++) {
+            for (uint32_t j = i+1; j < ptr_instance->phys_dev_count_term; j++) {
+                if (ptr_instance->phys_devs_term[i] == ptr_instance->phys_devs_term[j]) {
+                    ptr_instance->phys_devs_term[j] = NULL;
+                }
+            }
+        }
         for (uint32_t i = 0; i < ptr_instance->phys_dev_count_term; i++) {
             loader_instance_heap_free(ptr_instance, ptr_instance->phys_devs_term[i]);
         }