11 m_TensorInfo(tensorInfo),
12 m_MemoryManager(memoryManager),
14 m_UnmanagedMemory(nullptr),
15 m_ImportedMemory(nullptr)
21 : m_TensorInfo(tensorInfo),
23 m_UnmanagedMemory(nullptr),
24 m_ImportedMemory(nullptr)
31 ::operator
delete(m_UnmanagedMemory);
37 ARMNN_ASSERT_MSG(!m_UnmanagedMemory,
"RefTensorHandle::Manage() called after Allocate()");
41 m_Pool = m_MemoryManager->Manage(m_TensorInfo.
GetNumBytes());
47 if (!m_UnmanagedMemory)
52 m_UnmanagedMemory = ::operator
new(m_TensorInfo.
GetNumBytes());
56 m_MemoryManager->Allocate(m_Pool);
62 "that already has allocated memory.");
71 void* RefTensorHandle::GetPointer()
const
75 return m_ImportedMemory;
77 else if (m_UnmanagedMemory)
79 return m_UnmanagedMemory;
83 return m_MemoryManager->GetPointer(m_Pool);
87 throw NullPointerException(
"RefTensorHandle::GetPointer called on unmanaged, unallocated tensor handle");
91 void RefTensorHandle::CopyOutTo(
void* dest)
const
93 const void *src = GetPointer();
98 void RefTensorHandle::CopyInFrom(
const void* src)
100 void *dest = GetPointer();
117 m_ImportedMemory =
nullptr;
121 m_ImportedMemory = memory;
133 if (
reinterpret_cast<uintptr_t
>(memory) % alignment)