aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFerran Balaguer <ferran.balaguer@arm.com>2019-08-22 14:09:44 +0100
committerDerek Lamberti <derek.lamberti@arm.com>2019-08-22 17:04:34 +0000
commit1cd451cdd818e7df83cf60935abc54345fbc40e6 (patch)
tree748ce850800bd575e917c9495d44c10aadcd9faf
parente67edb238a3304dd767a34eca484d84bfebf76f5 (diff)
downloadarmnn-1cd451cdd818e7df83cf60935abc54345fbc40e6.tar.gz
IVGCVSW-3670 Fix Vts Tests after adding Ref Import functionality
Signed-off-by: Ferran Balaguer <ferran.balaguer@arm.com> Change-Id: I87d003ae14575d7d7be67b2a7d00d69ef6201849
-rw-r--r--src/backends/reference/RefTensorHandle.cpp11
-rw-r--r--src/backends/reference/test/RefTensorHandleTests.cpp6
2 files changed, 14 insertions, 3 deletions
diff --git a/src/backends/reference/RefTensorHandle.cpp b/src/backends/reference/RefTensorHandle.cpp
index 59ccec6bac..42ac7f0826 100644
--- a/src/backends/reference/RefTensorHandle.cpp
+++ b/src/backends/reference/RefTensorHandle.cpp
@@ -35,7 +35,10 @@ RefTensorHandle::~RefTensorHandle()
if (!m_Pool)
{
// unmanaged
- ::operator delete(m_UnmanagedMemory);
+ if (!m_Imported)
+ {
+ ::operator delete(m_UnmanagedMemory);
+ }
}
}
@@ -110,6 +113,12 @@ bool RefTensorHandle::Import(void* memory, MemorySource source)
// Checks the 16 byte memory alignment.
if (reinterpret_cast<uint64_t>(memory) % 16)
{
+ if (m_Imported)
+ {
+ m_Imported = false;
+ m_UnmanagedMemory = nullptr;
+ }
+
return false;
}
diff --git a/src/backends/reference/test/RefTensorHandleTests.cpp b/src/backends/reference/test/RefTensorHandleTests.cpp
index 8de03cf043..2c5d6d49ec 100644
--- a/src/backends/reference/test/RefTensorHandleTests.cpp
+++ b/src/backends/reference/test/RefTensorHandleTests.cpp
@@ -54,7 +54,6 @@ BOOST_AUTO_TEST_CASE(CheckSourceType)
TensorInfo info({1}, DataType::Float32);
RefTensorHandle handle(info, memoryManager, static_cast<unsigned int>(MemorySource::Malloc));
- // This pointer will be deleted in the handle destructor
int* testPtr = new int(4);
// Not supported
@@ -65,6 +64,8 @@ BOOST_AUTO_TEST_CASE(CheckSourceType)
// Supported
BOOST_CHECK(handle.Import(static_cast<void *>(testPtr), MemorySource::Malloc));
+
+ delete testPtr;
}
BOOST_AUTO_TEST_CASE(ReusePointer)
@@ -74,13 +75,14 @@ BOOST_AUTO_TEST_CASE(ReusePointer)
TensorInfo info({1}, DataType::Float32);
RefTensorHandle handle(info, memoryManager, static_cast<unsigned int>(MemorySource::Malloc));
- // This pointer will be deleted in the handle destructor
int* testPtr = new int(4);
handle.Import(static_cast<void *>(testPtr), MemorySource::Malloc);
// Reusing previously Imported pointer
BOOST_CHECK(handle.Import(static_cast<void *>(testPtr), MemorySource::Malloc));
+
+ delete testPtr;
}
BOOST_AUTO_TEST_CASE(MisalignedPointer)