[PATCH 1/6] ipa: rpi: Use r-value references in the set()/setLocked() functions

Laurent Pinchart laurent.pinchart at ideasonboard.com
Sun Dec 15 16:33:38 CET 2024


Hi Naush,

Thank you for the patch.

On Fri, Dec 13, 2024 at 09:38:24AM +0000, Naushir Patuck wrote:
> Use an r-value reference in set() and setLocked(), allowing more
> efficient metadata handling with std::forward and std::move if needed.
> 
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>
> ---
>  src/ipa/rpi/controller/metadata.h | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
> 
> diff --git a/src/ipa/rpi/controller/metadata.h b/src/ipa/rpi/controller/metadata.h
> index b4650d25170f..eda4b59bca9a 100644
> --- a/src/ipa/rpi/controller/metadata.h
> +++ b/src/ipa/rpi/controller/metadata.h
> @@ -36,10 +36,10 @@ public:
>  	}
>  
>  	template<typename T>
> -	void set(std::string const &tag, T const &value)
> +	void set(std::string const &tag, T &&value)
>  	{
>  		std::scoped_lock lock(mutex_);
> -		data_[tag] = value;
> +		data_[tag] = std::forward<T>(value);

You should include <utility>. With that,

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

>  	}
>  
>  	template<typename T>
> @@ -104,10 +104,10 @@ public:
>  	}
>  
>  	template<typename T>
> -	void setLocked(std::string const &tag, T const &value)
> +	void setLocked(std::string const &tag, T &&value)
>  	{
>  		/* Use this only if you're holding the lock yourself. */
> -		data_[tag] = value;
> +		data_[tag] = std::forward<T>(value);
>  	}
>  
>  	/*

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list