Fix INetwork::AddPrecompiledLayer to take the CompiledBlobPtr by value rather than reference.

Signed-off-by: Cathal Corbett <cathal.corbett@arm.com>
Change-Id: I4057d2d6055220bb0d415a934ac09688b699b77c
diff --git a/include/armnn/INetwork.hpp b/include/armnn/INetwork.hpp
index 3e60725..5d25665 100644
--- a/include/armnn/INetwork.hpp
+++ b/include/armnn/INetwork.hpp
@@ -423,7 +423,7 @@
     /// @param backend - optional BackendId set for the Precompiled layer.
     /// @return - Interface for configuring the layer.
     IConnectableLayer* AddPrecompiledLayer(const PreCompiledDescriptor& preCompiledDescriptor,
-                                           CompiledBlobPtr& compiledBlobPtr,
+                                           CompiledBlobPtr compiledBlobPtr,
                                            const Optional<BackendId>& backend,
                                            const char* name = nullptr);
 
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index c0cfe42..e89c6fe 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -215,11 +215,11 @@
 }
 
 IConnectableLayer* INetwork::AddPrecompiledLayer(const PreCompiledDescriptor& preCompiledDescriptor,
-                                                 CompiledBlobPtr& compiledBlobPtr,
+                                                 CompiledBlobPtr compiledBlobPtr,
                                                  const Optional<BackendId>& backend,
                                                  const char* name)
 {
-    return pNetworkImpl->AddPrecompiledLayer(preCompiledDescriptor, compiledBlobPtr, backend, name);
+    return pNetworkImpl->AddPrecompiledLayer(preCompiledDescriptor, std::move(compiledBlobPtr), backend, name);
 }
 
 IConnectableLayer* INetwork::AddActivationLayer(const ActivationDescriptor& activationDescriptor,
@@ -2772,7 +2772,7 @@
 }
 
 IConnectableLayer* NetworkImpl::AddPrecompiledLayer(const PreCompiledDescriptor& preCompiledDescriptor,
-                                                    CompiledBlobPtr& compiledBlobPtr,
+                                                    CompiledBlobPtr compiledBlobPtr,
                                                     const Optional<BackendId>& backend,
                                                     const char* name)
 {
diff --git a/src/armnn/Network.hpp b/src/armnn/Network.hpp
index db9c374..ee84d7b 100644
--- a/src/armnn/Network.hpp
+++ b/src/armnn/Network.hpp
@@ -171,7 +171,7 @@
                                          const char* name = nullptr);
 
     IConnectableLayer* AddPrecompiledLayer(const PreCompiledDescriptor& preCompiledDescriptor,
-                                           CompiledBlobPtr& compiledBlobPtr,
+                                           CompiledBlobPtr compiledBlobPtr,
                                            const Optional<BackendId>& backend,
                                            const char* name = nullptr);
 
diff --git a/src/armnn/test/SubgraphViewTests.cpp b/src/armnn/test/SubgraphViewTests.cpp
index 639e832..693daa2 100644
--- a/src/armnn/test/SubgraphViewTests.cpp
+++ b/src/armnn/test/SubgraphViewTests.cpp
@@ -201,7 +201,7 @@
     // Construct dummy pre-compiled layer
     INetworkPtr network = INetwork::Create();
     IConnectableLayer* preCompiledLayer = network->AddPrecompiledLayer(preCompiledDescriptor,
-                                                                       compiledBlobPtr,
+                                                                       std::move(compiledBlobPtr),
                                                                        backend);
 
     // Substitute sub-graph with pre-compiled layer
@@ -245,7 +245,7 @@
     // Construct dummy pre-compiled layer
     INetworkPtr network = INetwork::Create();
     IConnectableLayer* preCompiledLayer = network->AddPrecompiledLayer(preCompiledDescriptor,
-                                                                       compiledBlobPtr,
+                                                                       std::move(compiledBlobPtr),
                                                                        backend);
     SubgraphView substituteSubgraph(preCompiledLayer);
 
diff --git a/src/backends/backendsCommon/test/MockBackend.cpp b/src/backends/backendsCommon/test/MockBackend.cpp
index a34cfe9..d95cfc3 100644
--- a/src/backends/backendsCommon/test/MockBackend.cpp
+++ b/src/backends/backendsCommon/test/MockBackend.cpp
@@ -194,7 +194,7 @@
                 optimizationViews.GetINetwork()->AddPrecompiledLayer(
                         PreCompiledDescriptor(supportedSubgraph->GetNumInputSlots(),
                                               supportedSubgraph->GetNumOutputSlots()),
-                                              blobPtr,
+                                              std::move(blobPtr),
                                               backend,
                                               nullptr);
 
diff --git a/src/backends/backendsCommon/test/OptimizationViewsTests.cpp b/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
index c40c513..8e51a52 100644
--- a/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
+++ b/src/backends/backendsCommon/test/OptimizationViewsTests.cpp
@@ -161,7 +161,7 @@
     // Create a Network containing a layer to substitute in
     NetworkImpl net;
     Layer* substitutionpreCompiledLayer = PolymorphicDowncast<Layer*>(
-        net.AddPrecompiledLayer(substitutionLayerDescriptor, blobPtr, backend));
+        net.AddPrecompiledLayer(substitutionLayerDescriptor, std::move(blobPtr), backend));
 
     // Subgraph for a substitution layer
     SubgraphViewSelector::SubgraphViewPtr substitutionSubgraph =