[vlc-devel] [PATCH 7/8] vlc_plugin.h: Cast the deactivate function pointer
Rémi Denis-Courmont
remi at remlab.net
Thu Dec 3 18:11:25 CET 2020
Le torstaina 3. joulukuuta 2020, 19.03.43 EET Romain Vimont a écrit :
> On Thu, Dec 03, 2020 at 06:39:47PM +0200, Rémi Denis-Courmont wrote:
> > Le torstaina 3. joulukuuta 2020, 17.16.20 EET Hugo Beauzée-Luyssen a écrit
:
> > > Instead of initializing a function pointer using a compound literal,
> > > which might not compile in C++
> > > ---
> > >
> > > include/vlc_plugin.h | 2 +-
> > > 1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/include/vlc_plugin.h b/include/vlc_plugin.h
> > > index 63f0b3ac08..7a68c953e3 100644
> > > --- a/include/vlc_plugin.h
> > > +++ b/include/vlc_plugin.h
> > > @@ -313,7 +313,7 @@ VLC_METADATA_EXPORTS
> > >
> > > #define set_callbacks( activate, deactivate ) \
> > >
> > > set_callback(activate) \
> > > if (vlc_module_set(VLC_MODULE_CB_CLOSE, #deactivate, \
> > >
> > > - (void (*)(vlc_object_t *)){ deactivate })) \
> > > + (void (*)(vlc_object_t *))( deactivate ))) \
> >
> > The current code will warn if the conversion makes no sense.
> > This won't.
>
> It seems this does warn. For example, if we cast to a wrong function type
> instead:
>
> if (vlc_module_set(VLC_MODULE_CB_CLOSE, #deactivate, \
> (void (*)(int))( deactivate ))) \
>
> ../../include/vlc_plugin.h:316:24: warning: cast between incompatible
> function types from ‘void (*)(vlc_object_t *)’ to ‘void (*)(int)’
> [-Wcast-function-type] 316 | (void (*)(int))(
> deactivate ))) \
Oh? Ok then.
--
レミ・デニ-クールモン
http://www.remlab.net/
More information about the vlc-devel
mailing list