layers: Remove unneeded VulkanTypedHandle lookups

Using GetObjectMemBinding() to convert typed handle to a state object
when the caller already has the state object is not useful.

GetStateStructPtrFromObject() is no longer used.
diff --git a/layers/core_validation.cpp b/layers/core_validation.cpp
index 38db15a..be54215 100644
--- a/layers/core_validation.cpp
+++ b/layers/core_validation.cpp
@@ -215,13 +215,12 @@
 //  Otherwise, add reference from objectInfo to memoryInfo
 //  Add reference off of objInfo
 // TODO: We may need to refactor or pass in multiple valid usage statements to handle multiple valid usage conditions.
-bool CoreChecks::ValidateSetMemBinding(VkDeviceMemory mem, const VulkanTypedHandle &typed_handle, const char *apiName) const {
+bool CoreChecks::ValidateSetMemBinding(VkDeviceMemory mem, const BINDABLE &mem_binding, const char *apiName) const {
     bool skip = false;
     // It's an error to bind an object to NULL memory
     if (mem != VK_NULL_HANDLE) {
-        const BINDABLE *mem_binding = ValidationStateTracker::GetObjectMemBinding(typed_handle);
-        assert(mem_binding);
-        if (mem_binding->sparse) {
+        auto typed_handle = mem_binding.Handle();
+        if (mem_binding.sparse) {
             const char *error_code = nullptr;
             const char *handle_type = nullptr;
             if (typed_handle.type == kVulkanObjectTypeBuffer) {
@@ -253,7 +252,7 @@
         }
         const DEVICE_MEMORY_STATE *mem_info = ValidationStateTracker::GetDevMemState(mem);
         if (mem_info) {
-            const DEVICE_MEMORY_STATE *prev_binding = mem_binding->MemState();
+            const auto prev_binding = mem_binding.MemState();
             if (prev_binding) {
                 if (!prev_binding->Destroyed()) {
                     const char *error_code = nullptr;
@@ -4881,7 +4880,7 @@
     bool skip = false;
     if (buffer_state) {
         // Track objects tied to memory
-        skip = ValidateSetMemBinding(mem, buffer_state->Handle(), api_name);
+        skip = ValidateSetMemBinding(mem, *buffer_state, api_name);
 
         const auto mem_info = GetDevMemState(mem);
 
@@ -12775,8 +12774,7 @@
         const IMAGE_STATE *image_state = GetImageState(bind_info.image);
         if (image_state) {
             // Track objects tied to memory
-            skip |=
-                ValidateSetMemBinding(bind_info.memory, image_state->Handle(), error_prefix);
+            skip |= ValidateSetMemBinding(bind_info.memory, *image_state, error_prefix);
 
             const auto plane_info = LvlFindInChain<VkBindImagePlaneMemoryInfo>(bind_info.pNext);
             const auto mem_info = GetDevMemState(bind_info.memory);
diff --git a/layers/core_validation.h b/layers/core_validation.h
index e9e77bf..dac4979 100644
--- a/layers/core_validation.h
+++ b/layers/core_validation.h
@@ -146,7 +146,7 @@
     };
 
     bool VerifyQueueStateToSeq(const QUEUE_STATE* initial_queue, uint64_t initial_seq) const;
-    bool ValidateSetMemBinding(VkDeviceMemory mem, const VulkanTypedHandle& typed_handle, const char* apiName) const;
+    bool ValidateSetMemBinding(VkDeviceMemory mem, const BINDABLE& mem_binding, const char* apiName) const;
     bool ValidateDeviceQueueFamily(uint32_t queue_family, const char* cmd_name, const char* parameter_name, const char* error_code,
                                    bool optional) const;
     bool ValidateBindBufferMemory(VkBuffer buffer, VkDeviceMemory mem, VkDeviceSize memoryOffset, const char* api_name) const;
diff --git a/layers/state_tracker.cpp b/layers/state_tracker.cpp
index 3e476b7..3c3b692 100644
--- a/layers/state_tracker.cpp
+++ b/layers/state_tracker.cpp
@@ -400,119 +400,6 @@
                                GetImageState(pCopyBufferToImageInfo->dstImage));
 }
 
-// Return ptr to memory binding for given handle of specified type
-template <typename State, typename Result>
-static Result GetObjectMemBindingImpl(State state, const VulkanTypedHandle &typed_handle) {
-    switch (typed_handle.type) {
-        case kVulkanObjectTypeImage:
-            return state->GetImageState(typed_handle.Cast<VkImage>());
-        case kVulkanObjectTypeBuffer:
-            return state->GetBufferState(typed_handle.Cast<VkBuffer>());
-        case kVulkanObjectTypeAccelerationStructureNV:
-            return state->GetAccelerationStructureStateNV(typed_handle.Cast<VkAccelerationStructureNV>());
-        default:
-            break;
-    }
-    return nullptr;
-}
-
-const BINDABLE *ValidationStateTracker::GetObjectMemBinding(const VulkanTypedHandle &typed_handle) const {
-    return GetObjectMemBindingImpl<const ValidationStateTracker *, const BINDABLE *>(this, typed_handle);
-}
-
-BINDABLE *ValidationStateTracker::GetObjectMemBinding(const VulkanTypedHandle &typed_handle) {
-    return GetObjectMemBindingImpl<ValidationStateTracker *, BINDABLE *>(this, typed_handle);
-}
-
-// For given object struct return a ptr of BASE_NODE type for its wrapping struct
-BASE_NODE *ValidationStateTracker::GetStateStructPtrFromObject(const VulkanTypedHandle &object_struct) {
-    if (object_struct.node) {
-#ifdef _DEBUG
-        // assert that lookup would find the same object
-        VulkanTypedHandle other = object_struct;
-        other.node = nullptr;
-        assert(object_struct.node == GetStateStructPtrFromObject(other));
-#endif
-        return object_struct.node;
-    }
-    BASE_NODE *base_ptr = nullptr;
-    switch (object_struct.type) {
-        case kVulkanObjectTypeDescriptorSet: {
-            base_ptr = GetSetNode(object_struct.Cast<VkDescriptorSet>());
-            break;
-        }
-        case kVulkanObjectTypeSampler: {
-            base_ptr = GetSamplerState(object_struct.Cast<VkSampler>());
-            break;
-        }
-        case kVulkanObjectTypeQueryPool: {
-            base_ptr = GetQueryPoolState(object_struct.Cast<VkQueryPool>());
-            break;
-        }
-        case kVulkanObjectTypePipeline: {
-            base_ptr = GetPipelineState(object_struct.Cast<VkPipeline>());
-            break;
-        }
-        case kVulkanObjectTypeBuffer: {
-            base_ptr = GetBufferState(object_struct.Cast<VkBuffer>());
-            break;
-        }
-        case kVulkanObjectTypeBufferView: {
-            base_ptr = GetBufferViewState(object_struct.Cast<VkBufferView>());
-            break;
-        }
-        case kVulkanObjectTypeImage: {
-            base_ptr = GetImageState(object_struct.Cast<VkImage>());
-            break;
-        }
-        case kVulkanObjectTypeImageView: {
-            base_ptr = GetImageViewState(object_struct.Cast<VkImageView>());
-            break;
-        }
-        case kVulkanObjectTypeEvent: {
-            base_ptr = GetEventState(object_struct.Cast<VkEvent>());
-            break;
-        }
-        case kVulkanObjectTypeDescriptorPool: {
-            base_ptr = GetDescriptorPoolState(object_struct.Cast<VkDescriptorPool>());
-            break;
-        }
-        case kVulkanObjectTypeCommandPool: {
-            base_ptr = GetCommandPoolState(object_struct.Cast<VkCommandPool>());
-            break;
-        }
-        case kVulkanObjectTypeFramebuffer: {
-            base_ptr = GetFramebufferState(object_struct.Cast<VkFramebuffer>());
-            break;
-        }
-        case kVulkanObjectTypeRenderPass: {
-            base_ptr = GetRenderPassState(object_struct.Cast<VkRenderPass>());
-            break;
-        }
-        case kVulkanObjectTypeDeviceMemory: {
-            base_ptr = GetDevMemState(object_struct.Cast<VkDeviceMemory>());
-            break;
-        }
-        case kVulkanObjectTypeAccelerationStructureNV: {
-            base_ptr = GetAccelerationStructureStateNV(object_struct.Cast<VkAccelerationStructureNV>());
-            break;
-        }
-        case kVulkanObjectTypeAccelerationStructureKHR: {
-            base_ptr = GetAccelerationStructureStateKHR(object_struct.Cast<VkAccelerationStructureKHR>());
-            break;
-        }
-        case kVulkanObjectTypeUnknown:
-            // This can happen if an element of the object_bindings vector has been
-            // zeroed out, after an object is destroyed.
-            break;
-        default:
-            // TODO : Any other objects to be handled here?
-            assert(0);
-            break;
-    }
-    return base_ptr;
-}
-
 // Gets union of all features defined by Potential Format Features
 // except, does not handle the external format case for AHB as that only can be used for sampled images
 VkFormatFeatureFlags ValidationStateTracker::GetPotentialFormatFeatures(VkFormat format) const {
diff --git a/layers/state_tracker.h b/layers/state_tracker.h
index 4b97544..535e224 100644
--- a/layers/state_tracker.h
+++ b/layers/state_tracker.h
@@ -1166,7 +1166,6 @@
     std::vector<std::shared_ptr<const IMAGE_VIEW_STATE>> GetSharedAttachmentViews(const VkRenderPassBeginInfo& rp_begin,
                                                                                   const FRAMEBUFFER_STATE& fb_state) const;
 
-    BASE_NODE* GetStateStructPtrFromObject(const VulkanTypedHandle& object_struct);
     VkFormatFeatureFlags GetPotentialFormatFeatures(VkFormat format) const;
     void PerformUpdateDescriptorSetsWithTemplateKHR(VkDescriptorSet descriptorSet, const UPDATE_TEMPLATE_STATE* template_state,
                                                     const void* pData);