layers:Clean up shared_ptr use
authorTobin Ehlis <tobine@google.com>
Thu, 7 Sep 2017 20:24:36 +0000 (14:24 -0600)
committerTobin Ehlis <tobine@google.com>
Thu, 7 Sep 2017 20:32:12 +0000 (14:32 -0600)
Use make_shared to construct RENDER_PASS_STATE shared_ptr at
CreateRenderPass() time, return the shared_ptr by value from helper
function and accecpt rvalue ref in FRAMEBUFFER_STATE constructor.

layers/core_validation.cpp
layers/core_validation_types.h

index d262ab8..b0bc39b 100644 (file)
@@ -705,7 +705,7 @@ RENDER_PASS_STATE *GetRenderPassState(layer_data const *dev_data, VkRenderPass r
     return it->second.get();
 }
 
-std::shared_ptr<RENDER_PASS_STATE> const GetRenderPassStateSharedPtr(layer_data const *dev_data, VkRenderPass renderpass) {
+std::shared_ptr<RENDER_PASS_STATE> GetRenderPassStateSharedPtr(layer_data const *dev_data, VkRenderPass renderpass) {
     auto it = dev_data->renderPassMap.find(renderpass);
     if (it == dev_data->renderPassMap.end()) {
         return nullptr;
@@ -7938,7 +7938,7 @@ VKAPI_ATTR VkResult VKAPI_CALL CreateRenderPass(VkDevice device, const VkRenderP
         std::vector<int32_t> subpass_to_dep_index(pCreateInfo->subpassCount);
         skip |= CreatePassDAG(dev_data, pCreateInfo, subpass_to_node, has_self_dependency, subpass_to_dep_index);
 
-        auto render_pass = unique_ptr<RENDER_PASS_STATE>(new RENDER_PASS_STATE(pCreateInfo));
+        auto render_pass = std::make_shared<RENDER_PASS_STATE>(pCreateInfo);
         render_pass->renderPass = *pRenderPass;
         render_pass->hasSelfDependency = has_self_dependency;
         render_pass->subpassToNode = subpass_to_node;
index dc14e55..928583c 100644 (file)
@@ -765,10 +765,9 @@ class FRAMEBUFFER_STATE : public BASE_NODE {
 public:
     VkFramebuffer framebuffer;
     safe_VkFramebufferCreateInfo createInfo;
-    std::shared_ptr<RENDER_PASS_STATE> const rp_state;
+    std::shared_ptr<RENDER_PASS_STATE> rp_state;
     std::vector<MT_FB_ATTACHMENT_INFO> attachments;
-    FRAMEBUFFER_STATE(VkFramebuffer fb, const VkFramebufferCreateInfo *pCreateInfo,
-                      std::shared_ptr<RENDER_PASS_STATE> const rpstate)
+    FRAMEBUFFER_STATE(VkFramebuffer fb, const VkFramebufferCreateInfo *pCreateInfo, std::shared_ptr<RENDER_PASS_STATE> &&rpstate)
         : framebuffer(fb), createInfo(pCreateInfo), rp_state(rpstate){};
 };
 
@@ -790,7 +789,7 @@ IMAGE_VIEW_STATE *GetImageViewState(const layer_data *, VkImageView);
 SWAPCHAIN_NODE *GetSwapchainNode(const layer_data *, VkSwapchainKHR);
 GLOBAL_CB_NODE *GetCBNode(layer_data const *my_data, const VkCommandBuffer cb);
 RENDER_PASS_STATE *GetRenderPassState(layer_data const *dev_data, VkRenderPass renderpass);
-std::shared_ptr<RENDER_PASS_STATE> const GetRenderPassStateSharedPtr(layer_data const *dev_data, VkRenderPass renderpass);
+std::shared_ptr<RENDER_PASS_STATE> GetRenderPassStateSharedPtr(layer_data const *dev_data, VkRenderPass renderpass);
 FRAMEBUFFER_STATE *GetFramebufferState(const layer_data *my_data, VkFramebuffer framebuffer);
 COMMAND_POOL_NODE *GetCommandPoolNode(layer_data *dev_data, VkCommandPool pool);
 shader_module const *GetShaderModuleState(layer_data const *dev_data, VkShaderModule module);