[libcamera-devel] [PATCH] libcamera: signal: Fix return value template type of BoundMethodMember

Kieran Bingham kieran.bingham at ideasonboard.com
Tue Apr 13 23:24:08 CEST 2021


Hi Laurent,

On 12/04/2021 23:58, Laurent Pinchart wrote:
> The BoundMethodMember instance created in Signal::connect() for
> receivers inheriting from the Object class incorrectly sets the return
> type to void instead of R. This doesn't cause any functional issue as
> the return type is ignored anyway for signals, but should be fixed
> nonetheless.
> 

Hrmmm signal.h is some tough reading.

But indeed I can see this is the only place where R isn't used.

Reveiwed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>

> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> ---
>  include/libcamera/signal.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/include/libcamera/signal.h b/include/libcamera/signal.h
> index 5bcd7a77c5f1..3233529a1275 100644
> --- a/include/libcamera/signal.h
> +++ b/include/libcamera/signal.h
> @@ -49,7 +49,7 @@ public:
>  		     ConnectionType type = ConnectionTypeAuto)
>  	{
>  		Object *object = static_cast<Object *>(obj);
> -		SignalBase::connect(new BoundMethodMember<T, void, Args...>(obj, object, func, type));
> +		SignalBase::connect(new BoundMethodMember<T, R, Args...>(obj, object, func, type));
>  	}
>  
>  	template<typename T, typename R, typename std::enable_if_t<!std::is_base_of<Object, T>::value> * = nullptr>
> 

-- 
Regards
--
Kieran


More information about the libcamera-devel mailing list