diff options
| author | Chris Forbes <chrisforbes@google.com> | 2016-09-22 18:51:58 +1200 |
|---|---|---|
| committer | Chris Forbes <chrisforbes@google.com> | 2016-09-26 08:33:51 +1300 |
| commit | 3a77471ab4e0e27204aad67c32525266e103cd5f (patch) | |
| tree | 8c36d93927a2621c33cf23e9d914ce0d7817c7a0 | |
| parent | 6d1e8e2cd0e4bdd089197e6a5a72958dbb4210b0 (diff) | |
| download | usermoji-3a77471ab4e0e27204aad67c32525266e103cd5f.tar.xz | |
layers: Explicitly delete IMAGE_NODE, BUFFER_NODE copy constructors
Previously we defined copy constructors that would almost certainly lead
to bugs if these objects were copied (they copied the atomic values,
etc). The layer doesn't copy these, just disallow it.
Signed-off-by: Chris Forbes <chrisforbes@google.com>
| -rw-r--r-- | layers/core_validation_types.h | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/layers/core_validation_types.h b/layers/core_validation_types.h index 52aad3df..064dce8a 100644 --- a/layers/core_validation_types.h +++ b/layers/core_validation_types.h @@ -152,12 +152,10 @@ class BUFFER_NODE : public BASE_NODE { VkDeviceSize memOffset; VkDeviceSize memSize; // Note: may differ from createInfo::size VkBufferCreateInfo createInfo; - BUFFER_NODE() : buffer(VK_NULL_HANDLE), mem(VK_NULL_HANDLE), memOffset(0), memSize(0), createInfo{} { in_use.store(0); }; BUFFER_NODE(VkBuffer buff, const VkBufferCreateInfo *pCreateInfo) : buffer(buff), mem(VK_NULL_HANDLE), memOffset(0), memSize(0), createInfo(*pCreateInfo){}; - BUFFER_NODE(const BUFFER_NODE &rh_obj) - : buffer(rh_obj.buffer), mem(rh_obj.mem), memOffset(rh_obj.memOffset), memSize(rh_obj.memSize), - createInfo(rh_obj.createInfo){}; + + BUFFER_NODE(BUFFER_NODE const &rh_obj) = delete; }; class BUFFER_VIEW_STATE : public BASE_NODE { @@ -187,14 +185,10 @@ class IMAGE_NODE : public BASE_NODE { bool valid; // If this is a swapchain image backing memory track valid here as it doesn't have DEVICE_MEM_INFO VkDeviceSize memOffset; VkDeviceSize memSize; - IMAGE_NODE() : image(VK_NULL_HANDLE), createInfo{}, mem(VK_NULL_HANDLE), valid(false), memOffset(0), memSize(0){}; IMAGE_NODE(VkImage img, const VkImageCreateInfo *pCreateInfo) : image(img), createInfo(*pCreateInfo), mem(VK_NULL_HANDLE), valid(false), memOffset(0), memSize(0){}; - IMAGE_NODE(const IMAGE_NODE &rh_obj) - : image(rh_obj.image), createInfo(rh_obj.createInfo), mem(rh_obj.mem), valid(rh_obj.valid), memOffset(rh_obj.memOffset), - memSize(rh_obj.memSize) { - in_use.store(rh_obj.in_use.load()); - }; + + IMAGE_NODE(IMAGE_NODE const &rh_obj) = delete; }; class IMAGE_VIEW_STATE : public BASE_NODE { @@ -293,7 +287,7 @@ enum DRAW_TYPE { class IMAGE_CMD_BUF_LAYOUT_NODE { public: - IMAGE_CMD_BUF_LAYOUT_NODE() {} + IMAGE_CMD_BUF_LAYOUT_NODE() = default; IMAGE_CMD_BUF_LAYOUT_NODE(VkImageLayout initialLayoutInput, VkImageLayout layoutInput) : initialLayout(initialLayoutInput), layout(layoutInput) {} |
