diff options
Diffstat (limited to 'src/graph/Tensor.cpp')
-rw-r--r-- | src/graph/Tensor.cpp | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/graph/Tensor.cpp b/src/graph/Tensor.cpp index f69d49d016..72679c4ea4 100644 --- a/src/graph/Tensor.cpp +++ b/src/graph/Tensor.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2019 Arm Limited. + * Copyright (c) 2018-2019,2021 Arm Limited. * * SPDX-License-Identifier: MIT * @@ -75,25 +75,33 @@ std::unique_ptr<ITensorAccessor> Tensor::extract_accessor() bool Tensor::call_accessor() { // Early exit guard - if(!_accessor || !_handle) + if (!_accessor || !_handle) { return false; } - // Map tensor - _handle->map(true); + const bool access_data = _accessor->access_tensor_data(); - // Return in case of null backend buffer - if(_handle->tensor().buffer() == nullptr) + if (access_data) { - return false; + // Map tensor + _handle->map(true); + + // Return in case of null backend buffer + if (_handle->tensor().buffer() == nullptr) + { + return false; + } } // Call accessor bool retval = _accessor->access_tensor(_handle->tensor()); - // Unmap tensor - _handle->unmap(); + if (access_data) + { + // Unmap tensor + _handle->unmap(); + } return retval; } |