layers: Use correct data object for OT DestroyDevice
Devices were created on the physical device, but destroyed on the
device object.
Change-Id: I571409cabb5ca98e662b7d0fc33ba217978eb664
diff --git a/layers/object_tracker_utils.cpp b/layers/object_tracker_utils.cpp
index dfa5e14..386475d 100644
--- a/layers/object_tracker_utils.cpp
+++ b/layers/object_tracker_utils.cpp
@@ -372,7 +372,10 @@
}
void ObjectLifetimes::PreCallRecordDestroyDevice(VkDevice device, const VkAllocationCallbacks *pAllocator) {
- RecordDestroyObject(physical_device, device, kVulkanObjectTypeDevice);
+ auto instance_data = GetLayerDataPtr(get_dispatch_key(physical_device), layer_data_map);
+ ValidationObject *validation_data = GetValidationObject(instance_data->object_dispatch, LayerObjectTypeObjectTracker);
+ ObjectLifetimes *object_lifetimes = static_cast<ObjectLifetimes *>(validation_data);
+ object_lifetimes->RecordDestroyObject(physical_device, device, kVulkanObjectTypeDevice);
DestroyUndestroyedObjects(device);
// Clean up Queue's MemRef Linked Lists