diff options
| author | Mark Lobodzinski <mark@lunarg.com> | 2016-02-04 13:50:23 -0700 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2016-02-04 14:45:34 -0700 |
| commit | 4f8b69944fdc15150a783a49f1c6b2118b50f151 (patch) | |
| tree | f771ad08b4426f7081d0776e148f3344ec21ae4c /layers/swapchain.cpp | |
| parent | 39afaad5f2613b262640b22b221decdfdc4125d9 (diff) | |
| download | usermoji-4f8b69944fdc15150a783a49f1c6b2118b50f151.tar.xz | |
layers: Move logging callback destroy after logging calls
Swapchain was using deleted memory pointer causing crashes in
windows.
Conflicts:
layers/swapchain.cpp
Diffstat (limited to 'layers/swapchain.cpp')
| -rw-r--r-- | layers/swapchain.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/layers/swapchain.cpp b/layers/swapchain.cpp index 912d06ae..b3f5366e 100644 --- a/layers/swapchain.cpp +++ b/layers/swapchain.cpp @@ -343,14 +343,6 @@ VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(VkInstance instance loader_platform_thread_lock_mutex(&globalLock); - // Clean up logging callback, if any - while (my_data->logging_callback.size() > 0) { - VkDebugReportCallbackEXT callback = my_data->logging_callback.back(); - layer_destroy_msg_callback(my_data->report_data, callback, pAllocator); - my_data->logging_callback.pop_back(); - } - layer_debug_report_destroy_instance(my_data->report_data); - // Do additional internal cleanup: if (pInstance) { // Delete all of the SwpPhysicalDevice's, SwpSurface's, and the @@ -391,6 +383,15 @@ VK_LAYER_EXPORT VKAPI_ATTR void VKAPI_CALL vkDestroyInstance(VkInstance instance } my_data->instanceMap.erase(instance); } + + // Clean up logging callback, if any + while (my_data->logging_callback.size() > 0) { + VkDebugReportCallbackEXT callback = my_data->logging_callback.back(); + layer_destroy_msg_callback(my_data->report_data, callback, pAllocator); + my_data->logging_callback.pop_back(); + } + layer_debug_report_destroy_instance(my_data->report_data); + delete my_data->instance_dispatch_table; layer_data_map.erase(key); if (layer_data_map.empty()) { |
