aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Forbes <chrisforbes@google.com>2016-09-22 18:51:58 +1200
committerChris Forbes <chrisforbes@google.com>2016-09-26 08:33:51 +1300
commit3a77471ab4e0e27204aad67c32525266e103cd5f (patch)
tree8c36d93927a2621c33cf23e9d914ce0d7817c7a0
parent6d1e8e2cd0e4bdd089197e6a5a72958dbb4210b0 (diff)
downloadusermoji-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.h16
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) {}