aboutsummaryrefslogtreecommitdiff
path: root/layers/swapchain.cpp
diff options
context:
space:
mode:
authorMark Lobodzinski <mark@lunarg.com>2016-02-04 13:50:23 -0700
committerMark Lobodzinski <mark@lunarg.com>2016-02-04 14:45:34 -0700
commit4f8b69944fdc15150a783a49f1c6b2118b50f151 (patch)
treef771ad08b4426f7081d0776e148f3344ec21ae4c /layers/swapchain.cpp
parent39afaad5f2613b262640b22b221decdfdc4125d9 (diff)
downloadusermoji-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.cpp17
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()) {