From 7997a3527218ed821ec933ef3a5e6a3f07409b21 Mon Sep 17 00:00:00 2001 From: Matteo Martincigh Date: Wed, 17 Apr 2019 15:37:30 +0100 Subject: IVGCVSW-2980 Build ArmNN with the latest version of the driver stack library * Changed the pre-compiled object held by the pre-compiled layer into a unique pointer, so that now the layer has the ownership of it * Changed the pre-compiled object held by the descriptor and the workload into a naked pointer, to leave the ownership to the layer Change-Id: I4a582e45ca0aa3978e8e40b786c743a6eddce852 Signed-off-by: Matteo Martincigh --- src/armnn/layers/PreCompiledLayer.cpp | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) (limited to 'src/armnn/layers/PreCompiledLayer.cpp') diff --git a/src/armnn/layers/PreCompiledLayer.cpp b/src/armnn/layers/PreCompiledLayer.cpp index 11064216ee..29b35147f6 100644 --- a/src/armnn/layers/PreCompiledLayer.cpp +++ b/src/armnn/layers/PreCompiledLayer.cpp @@ -16,7 +16,6 @@ namespace armnn PreCompiledLayer::PreCompiledLayer(const PreCompiledDescriptor& param, const char* name) : LayerWithParameters(param.m_NumInputSlots, param.m_NumOutputSlots, LayerType::PreCompiled, param, name) - , m_PreCompiledObject(nullptr) {} PreCompiledLayer::~PreCompiledLayer() @@ -25,7 +24,7 @@ PreCompiledLayer::~PreCompiledLayer() PreCompiledLayer* PreCompiledLayer::Clone(Graph& graph) const { PreCompiledLayer* clone = CloneBase(graph, m_Param, GetName()); - clone->m_PreCompiledObject = this->m_PreCompiledObject; + clone->m_PreCompiledObject.reset(const_cast(this)->m_PreCompiledObject.release()); return clone; } @@ -33,7 +32,7 @@ std::unique_ptr PreCompiledLayer::CreateWorkload(const armnn::Graph& const armnn::IWorkloadFactory& factory) const { PreCompiledQueueDescriptor descriptor; - descriptor.m_PreCompiledObject = m_PreCompiledObject; + descriptor.m_PreCompiledObject = m_PreCompiledObject.get(); return factory.CreatePreCompiled(descriptor, PrepInfoAndDesc(descriptor, graph)); } @@ -43,14 +42,9 @@ void PreCompiledLayer::ValidateTensorShapesFromInputs() // we do not need to validate its input shapes } -std::shared_ptr PreCompiledLayer::GetPreCompiledObject() const +void PreCompiledLayer::SetPreCompiledObject(PreCompiledObjectPtr preCompiledObject) { - return m_PreCompiledObject; -} - -void PreCompiledLayer::SetPreCompiledObject(const std::shared_ptr& preCompiledObject) -{ - m_PreCompiledObject = preCompiledObject; + m_PreCompiledObject = std::move(preCompiledObject); } void PreCompiledLayer::Accept(ILayerVisitor& visitor) const -- cgit v1.2.1