From 99d40951df87790fb884ce1c42d5e2a7a0009ee0 Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Mon, 23 Apr 2018 16:26:46 +0100 Subject: COMPMID-1023: Import memory for OpenCL Change-Id: I201bc00a1261814737e6b6878ecfe9904bae0cc1 Reviewed-on: https://eu-gerrit-1.euhpc.arm.com/128212 Tested-by: Jenkins Reviewed-by: Anthony Barbier --- src/runtime/Memory.cpp | 45 +++++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 20 deletions(-) (limited to 'src/runtime/Memory.cpp') diff --git a/src/runtime/Memory.cpp b/src/runtime/Memory.cpp index 35d0c824bb..15bbb17675 100644 --- a/src/runtime/Memory.cpp +++ b/src/runtime/Memory.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2017 ARM Limited. + * Copyright (c) 2017-2018 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -23,40 +23,45 @@ */ #include "arm_compute/runtime/Memory.h" -#include "arm_compute/core/Error.h" - -using namespace arm_compute; +#include "arm_compute/runtime/MemoryRegion.h" +namespace arm_compute +{ Memory::Memory() - : _memory(nullptr), _memory_owned(nullptr) + : _region(nullptr), _region_owned(nullptr) { + create_empty_region(); } -Memory::Memory(std::shared_ptr memory) - : _memory(nullptr), _memory_owned(std::move(memory)) +Memory::Memory(std::shared_ptr memory) + : _region(nullptr), _region_owned(std::move(memory)) { - ARM_COMPUTE_ERROR_ON(_memory_owned.get() == nullptr); - _memory = _memory_owned.get(); + if(_region_owned == nullptr) + { + create_empty_region(); + } + _region = _region_owned.get(); } -Memory::Memory(uint8_t *memory) - : _memory(memory), _memory_owned(nullptr) +Memory::Memory(IMemoryRegion *memory) + : _region(memory), _region_owned(nullptr) { - ARM_COMPUTE_ERROR_ON(memory == nullptr); + _region = memory; } -uint8_t *Memory::buffer() +IMemoryRegion *Memory::region() { - return _memory; + return _region; } -uint8_t *Memory::buffer() const +IMemoryRegion *Memory::region() const { - return _memory; + return _region; } -uint8_t **Memory::handle() +void Memory::create_empty_region() { - ARM_COMPUTE_ERROR_ON(_memory_owned.get() != nullptr); - return &_memory; -} \ No newline at end of file + _region_owned = std::make_shared(0); + _region = _region_owned.get(); +} +} // namespace arm_compute -- cgit v1.2.1