From f52cd78acdedc9b4e2342daf2ca65578a6da28e1 Mon Sep 17 00:00:00 2001 From: Georgios Pinitas Date: Mon, 25 Mar 2019 14:06:14 +0000 Subject: COMPMID-1995: Minor code fixes. -Remove FIXMEs and link to tickets. -Pass large object by const reference. -Implement copy assignment operator for Window. Change-Id: I975223ac42ec424f153569a8c963f29e6b86ad29 Signed-off-by: Georgios Pinitas Reviewed-on: https://review.mlplatform.org/c/899 Comments-Addressed: Arm Jenkins Tested-by: Arm Jenkins Reviewed-by: Michele Di Giorgio --- arm_compute/core/Window.h | 17 +++++++++++++++-- arm_compute/core/Window.inl | 14 +++++++++++++- 2 files changed, 28 insertions(+), 3 deletions(-) (limited to 'arm_compute/core') diff --git a/arm_compute/core/Window.h b/arm_compute/core/Window.h index 73c8d4385b..a56227996b 100644 --- a/arm_compute/core/Window.h +++ b/arm_compute/core/Window.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 ARM Limited. + * Copyright (c) 2016-2019 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -56,6 +56,13 @@ public: * @param[in] src Copy the values from src to a new object */ Window(const Window &src); + /** Copy assignment operator + * + * @param[in] rhs Copy the values from rhs to the current object + * + * @return Reference to the updated object + */ + Window &operator=(const Window &rhs); /** Describe one of the image's dimensions with a start, end and step. * @@ -384,6 +391,12 @@ public: { return broadcast_if_dimension_le_one(info.tensor_shape()); } + /** Friend function that swaps the contents of two windows + * + * @param[in] lhs First window to swap. + * @param[in] rhs Second window to swap. + */ + friend void swap(Window &lhs, Window &rhs); private: /** First slice of the window @@ -407,6 +420,6 @@ private: private: std::array _dims; }; -} +} // namespace arm_compute #include "Window.inl" #endif /*__ARM_COMPUTE_WINDOW_H__ */ diff --git a/arm_compute/core/Window.inl b/arm_compute/core/Window.inl index c6fc8848aa..eeef3df7b0 100644 --- a/arm_compute/core/Window.inl +++ b/arm_compute/core/Window.inl @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2018 ARM Limited. + * Copyright (c) 2016-2019 ARM Limited. * * SPDX-License-Identifier: MIT * @@ -32,6 +32,13 @@ inline Window::Window(const Window &src) } } +inline Window &Window::operator=(const arm_compute::Window &rhs) +{ + Window tmp(rhs); + swap(*this, tmp); + return *this; +} + inline constexpr const Window::Dimension &Window::operator[](size_t dimension) const { // Precondition: dimension < Coordinates::num_max_dimensions @@ -267,4 +274,9 @@ inline size_t Window::num_iterations_total() const } return total; } + +inline void swap(Window &lhs, Window &rhs) +{ + lhs._dims.swap(rhs._dims); } +} // namespace arm_compute -- cgit v1.2.1