aboutsummaryrefslogtreecommitdiff
path: root/src/backends/reference/RefTensorHandle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/backends/reference/RefTensorHandle.cpp')
-rw-r--r--src/backends/reference/RefTensorHandle.cpp11
1 files changed, 10 insertions, 1 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;
}