layers: Fix CTS BufferView UpdateTemplate crash

Change-Id: I2d03265b465ffc869f52ca85e6ad23301424a8d7
diff --git a/layers/unique_objects.cpp b/layers/unique_objects.cpp
index c94144f..ed8dd26 100644
--- a/layers/unique_objects.cpp
+++ b/layers/unique_objects.cpp
@@ -697,19 +697,18 @@
                     allocation_size = std::max(allocation_size, offset + sizeof(VkDescriptorBufferInfo));
 
                     VkDescriptorBufferInfo *wrapped_entry = new VkDescriptorBufferInfo(*buffer_entry);
-                    wrapped_entry->buffer =
-                        reinterpret_cast<VkBuffer &>(dev_data->unique_id_mapping[reinterpret_cast<uint64_t &>(buffer_entry->buffer)]);
+                    wrapped_entry->buffer = reinterpret_cast<VkBuffer &>(
+                        dev_data->unique_id_mapping[reinterpret_cast<uint64_t &>(buffer_entry->buffer)]);
                     template_entries.emplace_back(offset, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_EXT,
                                                   reinterpret_cast<void *>(wrapped_entry));
                 } break;
 
                 case VK_DESCRIPTOR_TYPE_UNIFORM_TEXEL_BUFFER:
                 case VK_DESCRIPTOR_TYPE_STORAGE_TEXEL_BUFFER: {
+                    auto buffer_view_handle = reinterpret_cast<uint64_t *>(update_entry);
                     allocation_size = std::max(allocation_size, offset + sizeof(VkBufferView));
 
-                    VkBufferView *wrapped_entry = new VkBufferView;
-                    *wrapped_entry =
-                        reinterpret_cast<VkBufferView &>(dev_data->unique_id_mapping[reinterpret_cast<uint64_t &>(update_entry)]);
+                    uint64_t wrapped_entry = dev_data->unique_id_mapping[reinterpret_cast<uint64_t &>(*buffer_view_handle)];
                     template_entries.emplace_back(offset, VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT,
                                                   reinterpret_cast<void *>(wrapped_entry));
                 } break;
@@ -736,8 +735,7 @@
                 delete reinterpret_cast<VkDescriptorBufferInfo *>(source);
                 break;
             case VK_DEBUG_REPORT_OBJECT_TYPE_BUFFER_VIEW_EXT:
-                *(reinterpret_cast<VkBufferView *>(destination)) = *(reinterpret_cast<VkBufferView *>(source));
-                delete reinterpret_cast<VkBufferView *>(source);
+                *(reinterpret_cast<VkBufferView *>(destination)) = reinterpret_cast<VkBufferView>(source);
                 break;
             default:
                 assert(0);