[libcamera-devel] [PATCH v2] libcamera: controls: Suppress error message from ControlList::get()

Laurent Pinchart laurent.pinchart at ideasonboard.com
Wed Jul 20 10:27:23 CEST 2022


Hi Naush,

Thank you for the patch.

On Wed, Jul 20, 2022 at 09:15:34AM +0100, Naushir Patuck via libcamera-devel wrote:
> Now that ControlList::get() returns a std::optional<T> to handle missing
> controls, the error log message in the call to ControlList::find() is
> unnecessary and likely invalid.
> 
> Fix this by avoding the call to ControlList::find() from ControlList::get() and

s/avoding/avoiding/

> replacing with a call to the underlying std::unordered_map::find().
> 
> Fixes: 1c4d48018505 ("libcamera: controls: Use std::optional to handle invalid control values")
> Signed-off-by: Naushir Patuck <naush at raspberrypi.com>

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

> ---
>  include/libcamera/controls.h | 7 ++++---
>  1 file changed, 4 insertions(+), 3 deletions(-)
> 
> diff --git a/include/libcamera/controls.h b/include/libcamera/controls.h
> index 192be78434dc..8362fce813fb 100644
> --- a/include/libcamera/controls.h
> +++ b/include/libcamera/controls.h
> @@ -376,11 +376,12 @@ public:
>  	template<typename T>
>  	std::optional<T> get(const Control<T> &ctrl) const
>  	{
> -		const ControlValue *val = find(ctrl.id());
> -		if (!val)
> +		const auto entry = controls_.find(ctrl.id());
> +		if (entry == controls_.end())
>  			return std::nullopt;
>  
> -		return val->get<T>();
> +		const ControlValue &val = entry->second;
> +		return val.get<T>();
>  	}
>  
>  	template<typename T, typename V>

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list