IVGCVSW-6474 Fix calculation of BindingId vector size

Signed-off-by: Finn Williams <finwil01@e127804.cambridge.arm.com>
Change-Id: If128ed0a8ed2b9a0ed8001715133ba5a6c6d682c
diff --git a/src/armnn/WorkingMemHandle.cpp b/src/armnn/WorkingMemHandle.cpp
index 7dde673..e2ad52a 100644
--- a/src/armnn/WorkingMemHandle.cpp
+++ b/src/armnn/WorkingMemHandle.cpp
@@ -27,7 +27,6 @@
     , m_WorkingMemDescriptorMap(workingMemDescriptorMap)
     , m_MemoryManagers(memoryManagers)
     , m_OwnedTensorHandles(std::move(ownedTensorHandles))
-    , m_BindingIdVec(inputLayerInfo.size() + ouputLayerInfo.size())
     , m_InputSize(numeric_cast<DifferenceType>(inputLayerInfo.size()))
     , m_IsAllocated(false)
 {
@@ -54,7 +53,7 @@
             m_InputConnectionMap[inputInfo.m_LayerBindingId].push_back(inputPos);
         }
     }
-
+    size_t bindingIdCount = inputLayerInfo.size();
     for (const auto& outputInfo : ouputLayerInfo)
     {
         for (auto bindingId : outputInfo.m_LayerBindingIds)
@@ -67,7 +66,7 @@
 
             m_OutputHandleMap[bindingId] = *outputPos;
         }
-
+        bindingIdCount += outputInfo.m_LayerBindingIds.size();
         // More than one layerBinding id means the tensorhandle is connected to more than one OutputLayer.
         // Importing in this case would likely cause unexpected behaviour, so we disallow it.
         if (outputInfo.m_LayerBindingIds.size() != 1)
@@ -88,6 +87,7 @@
             m_OutputConnectionMap[outputInfo.m_LayerBindingIds[0]].push_back(inputPos);
         }
     }
+    m_BindingIdVec = std::vector<LayerBindingId>(bindingIdCount);
 }
 
 void WorkingMemHandle::Allocate()