From 4f8b69944fdc15150a783a49f1c6b2118b50f151 Mon Sep 17 00:00:00 2001 From: Mark Lobodzinski Date: Thu, 4 Feb 2016 13:50:23 -0700 Subject: layers: Move logging callback destroy after logging calls Swapchain was using deleted memory pointer causing crashes in windows. Conflicts: layers/swapchain.cpp --- layers/swapchain.cpp | 17 +++++++++-------- 1 file 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()) { -- cgit v1.2.3