[libcamera-devel] [PATCH] libcamera: control_serializer: Use explicit ControlTypeNone case
Laurent Pinchart
laurent.pinchart at ideasonboard.com
Tue Mar 3 09:42:07 CET 2020
Hi Kieran,
On Mon, Mar 02, 2020 at 10:36:36PM +0000, Kieran Bingham wrote:
> On 02/03/2020 16:41, Laurent Pinchart wrote:
> > On Mon, Mar 02, 2020 at 03:35:23PM +0000, Kieran Bingham wrote:
> >> On 01/03/2020 16:02, Laurent Pinchart wrote:
> >>> Replace the default case with an explicit ControlTypeNone case in
> >>> ControlSerializer::load() to catch ommissions when adding new control
> >>> types.
> >>
> >> s/ommissions/omissions/
> >>
> >> This sounds good. Does it cause any issue with no default case found?
> >>
> >> In fact looking again, Of course this now means that the compiler will
> >> warn us here if an option is not handled by the case statement.
> >
> > But some gcc version still reports that the function has an exit path
> > with a return statement :-( I'll have to add both.
>
> Does adding both remove the benefit of having the compiler warn us when
> we add new enum types without adding them to the case statement?
>
> If not then that's fine.
The benefit stays :-) I've just tested it.
> >> Excellent.
> >>
> >> Reviewed-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
> >>
> >>> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
> >>> ---
> >>> src/libcamera/control_serializer.cpp | 2 +-
> >>> 1 file changed, 1 insertion(+), 1 deletion(-)
> >>>
> >>> diff --git a/src/libcamera/control_serializer.cpp b/src/libcamera/control_serializer.cpp
> >>> index 5537c5466025..e78fca88cfea 100644
> >>> --- a/src/libcamera/control_serializer.cpp
> >>> +++ b/src/libcamera/control_serializer.cpp
> >>> @@ -361,7 +361,7 @@ ControlValue ControlSerializer::load<ControlValue>(ControlType type,
> >>> return ControlValue(value);
> >>> }
> >>>
> >>> - default:
> >>> + case ControlTypeNone:
> >>> return ControlValue();
> >>> }
> >>> }
--
Regards,
Laurent Pinchart
More information about the libcamera-devel
mailing list