[vlc-devel] [PATCH 1/2] plugin: add set_callback() macro

Steve Lhomme robux4 at ycbcr.xyz
Thu Jul 18 07:48:25 CEST 2019


On 2019-07-17 22:26, RĂ©mi Denis-Courmont wrote:
> This avoids registering NULL as a deactivate callback.
> ---
>   include/vlc_plugin.h | 8 ++++++--
>   src/modules/entry.c  | 2 +-
>   2 files changed, 7 insertions(+), 3 deletions(-)
> 
> diff --git a/include/vlc_plugin.h b/include/vlc_plugin.h
> index b16a313d1d..9f363eda57 100644
> --- a/include/vlc_plugin.h
> +++ b/include/vlc_plugin.h
> @@ -302,9 +302,13 @@ VLC_METADATA_EXPORTS
>        || vlc_module_set (VLC_MODULE_SCORE, (int)(score))) \
>           goto error;
>   
> +#define set_callback(activate) \
> +    if (vlc_module_set(VLC_MODULE_CB_OPEN, #activate, (void *)(activate))) \
> +        goto error;

Maybe use a more meaningful name like set_open_callback() or 
set_init_callback(). It's more readable.

> +
>   #define set_callbacks( activate, deactivate ) \
> -    if (vlc_module_set(VLC_MODULE_CB_OPEN, #activate, (void *)(activate)) \
> -     || vlc_module_set(VLC_MODULE_CB_CLOSE, #deactivate, \
> +    set_callback(activate) \
> +    if (vlc_module_set(VLC_MODULE_CB_CLOSE, #deactivate, \
>                          (void *)(deactivate))) \
>           goto error;
>   
> diff --git a/src/modules/entry.c b/src/modules/entry.c
> index bce94285c6..21eb09bf3c 100644
> --- a/src/modules/entry.c
> +++ b/src/modules/entry.c
> @@ -570,7 +570,7 @@ static int vlc_plugin_get_symbol(void *root, const char *name,
>                                    void **restrict addrp)
>   {
>       if (name == NULL)
> -    {   /* TODO: use this; do not define "NULL" as a name for NULL? */
> +    {
>           *addrp = NULL;
>           return 0;
>       }
> -- 
> 2.22.0
> 
> _______________________________________________
> vlc-devel mailing list
> To unsubscribe or modify your subscription options:
> https://mailman.videolan.org/listinfo/vlc-devel
> 


More information about the vlc-devel mailing list