diff options
Diffstat (limited to 'loader')
| -rw-r--r-- | loader/loader.c | 1 | ||||
| -rw-r--r-- | loader/trampoline.c | 5 |
2 files changed, 5 insertions, 1 deletions
diff --git a/loader/loader.c b/loader/loader.c index 737bf66a..60641004 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -1242,6 +1242,7 @@ VkResult loader_DestroyInstance( for (i = 0; i < ptr_instance->extension_count; i++) { free(ptr_instance->extension_names[i]); } + free(ptr_instance->disp); if (prev) prev->next = next->next; else diff --git a/loader/trampoline.c b/loader/trampoline.c index 908b47d7..7453f1ba 100644 --- a/loader/trampoline.c +++ b/loader/trampoline.c @@ -70,9 +70,12 @@ LOADER_EXPORT VkResult VKAPI vkCreateInstance( return VK_ERROR_OUT_OF_HOST_MEMORY; strcpy(ptr_instance->extension_names[i], pCreateInfo->ppEnabledExtensionNames[i]); } + ptr_instance->disp = malloc(sizeof(VkLayerInstanceDispatchTable)); + if (ptr_instance->disp == NULL) + return VK_ERROR_OUT_OF_HOST_MEMORY; + memcpy(ptr_instance->disp, &instance_disp, sizeof(instance_disp)); ptr_instance->next = loader.instances; loader.instances = ptr_instance; - ptr_instance->disp = &instance_disp; loader_activate_instance_layers(ptr_instance); res = instance_disp.CreateInstance(pCreateInfo, (VkInstance *) ptr_instance); |
