1
0
mirror of https://github.com/gryf/wmaker.git synced 2025-12-22 05:48:01 +01:00

wmaker: replaced dangerous function type conversion by argument conversion

A type conversion applied to a function when used as a pointer is dangerous
because the compiler may not be able to make sure arguments will be
compatible across architectures, so it can crash the application.

This is replaced by a function prototype matching exactly what is expected
for the callback, and have the type conversion on the argument done inside
the function so the compiler have complete liberty to generate any code
needed to handle it safely.

Signed-off-by: Christophe CURIS <christophe.curis@free.fr>
Signed-off-by: Carlos R. Mafra <crmafra@gmail.com>
This commit is contained in:
Christophe CURIS
2014-11-15 19:40:35 +01:00
committed by Carlos R. Mafra
parent f60f14b7bd
commit 894d3e89bf

View File

@@ -1543,8 +1543,10 @@ typedef struct _delay {
int ox, oy; int ox, oy;
} _delay; } _delay;
static void leaving(_delay * dl) static void callback_leaving(void *user_param)
{ {
_delay *dl = (_delay *) user_param;
wMenuMove(dl->menu, dl->ox, dl->oy, True); wMenuMove(dl->menu, dl->ox, dl->oy, True);
dl->menu->jump_back = NULL; dl->menu->jump_back = NULL;
dl->menu->menu->screen_ptr->flags.jump_back_pending = 0; dl->menu->menu->screen_ptr->flags.jump_back_pending = 0;
@@ -1652,6 +1654,7 @@ void wMenuScroll(WMenu *menu)
if (jump_back) { if (jump_back) {
_delay *delayer; _delay *delayer;
if (!omenu->jump_back) { if (!omenu->jump_back) {
delayer = wmalloc(sizeof(_delay)); delayer = wmalloc(sizeof(_delay));
delayer->menu = omenu; delayer->menu = omenu;
@@ -1661,7 +1664,7 @@ void wMenuScroll(WMenu *menu)
scr->flags.jump_back_pending = 1; scr->flags.jump_back_pending = 1;
} else } else
delayer = omenu->jump_back; delayer = omenu->jump_back;
WMAddTimerHandler(MENU_JUMP_BACK_DELAY, (WMCallback *) leaving, delayer); WMAddTimerHandler(MENU_JUMP_BACK_DELAY, callback_leaving, delayer);
} }
} }