mirror of
https://code.videolan.org/videolan/vlc
synced 2024-09-16 16:02:54 +02:00
Avoid anonymous compound in add_shortcut (fixes: #3742)
This commit is contained in:
parent
fb718f7ceb
commit
6b49f68da9
@ -120,8 +120,8 @@ enum vlc_module_properties
|
||||
/**
|
||||
* Current plugin ABI version
|
||||
*/
|
||||
# define MODULE_SYMBOL 1_2_0b
|
||||
# define MODULE_SUFFIX "__1_2_0b"
|
||||
# define MODULE_SYMBOL 1_2_0c
|
||||
# define MODULE_SUFFIX "__1_2_0c"
|
||||
|
||||
/*****************************************************************************
|
||||
* Add a few defines. You do not want to read this section. Really.
|
||||
@ -196,9 +196,12 @@ enum vlc_module_properties
|
||||
goto error;
|
||||
|
||||
#define add_shortcut( ... ) \
|
||||
{ \
|
||||
const char *shortcuts[] = { __VA_ARGS__ }; \
|
||||
if (vlc_module_set (p_submodule, VLC_MODULE_SHORTCUT, \
|
||||
sizeof((const char*[]){__VA_ARGS__})/sizeof(const char*), __VA_ARGS__)) \
|
||||
goto error;
|
||||
sizeof(shortcuts)/sizeof(shortcuts[0]), shortcuts)) \
|
||||
goto error; \
|
||||
}
|
||||
|
||||
#define set_shortname( shortname ) \
|
||||
if (vlc_module_set (p_submodule, VLC_MODULE_SHORTNAME, \
|
||||
|
@ -183,14 +183,17 @@ int vlc_plugin_set (module_t *module, module_config_t *item, int propid, ...)
|
||||
{
|
||||
unsigned i_shortcuts = va_arg (ap, unsigned);
|
||||
unsigned index = module->i_shortcuts;
|
||||
module->i_shortcuts += i_shortcuts;
|
||||
|
||||
module->pp_shortcuts = realloc (module->pp_shortcuts, sizeof( char ** ) * module->i_shortcuts);
|
||||
for (; index < module->i_shortcuts; index++)
|
||||
const char *const *tab = va_arg (ap, const char *const *);
|
||||
const char **pp = realloc (module->pp_shortcuts,
|
||||
sizeof (pp[0]) * (index + i_shortcuts));
|
||||
if (unlikely(pp == NULL))
|
||||
{
|
||||
const char *psz_new = va_arg (ap, const char*);
|
||||
module->pp_shortcuts[index] = psz_new;
|
||||
ret = -1;
|
||||
break;
|
||||
}
|
||||
module->pp_shortcuts = pp;
|
||||
module->i_shortcuts = index + i_shortcuts;
|
||||
memcpy (pp + index, tab, sizeof (pp[0]) * i_shortcuts);
|
||||
break;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user