static void fghInitErrorFuncCallback( const char *fmt, va_list ap, FGCBUserData userData )
{
- FGError callback = (FGError)userData;
- callback( fmt, ap );
+ FGError* callback = (FGError*)&userData;
+ (*callback)( fmt, ap );
}
void FGAPIENTRY glutInitErrorFunc( FGError callback )
{
- if (callback)
- {
- glutInitErrorFuncUcall( fghInitErrorFuncCallback, (FGCBUserData)callback );
- }
- else
- {
- glutInitErrorFuncUcall( NULL, NULL );
- }
+ if (callback)
+ {
+ FGError* reference = &callback;
+ glutInitErrorFuncUcall( fghInitErrorFuncCallback, *((FGCBUserData*)reference) );
+ }
+ else
+ {
+ glutInitErrorFuncUcall( NULL, NULL );
+ }
}
/*
static void fghInitWarningFuncCallback( const char *fmt, va_list ap, FGCBUserData userData )
{
- FGWarning callback = (FGWarning)userData;
- callback( fmt, ap );
+ FGWarning* callback = (FGWarning*)&userData;
+ (*callback)( fmt, ap );
}
void FGAPIENTRY glutInitWarningFunc( FGWarning callback )
{
- if (callback)
- {
- glutInitWarningFuncUcall( fghInitWarningFuncCallback, (FGCBUserData)callback );
- }
- else
- {
- glutInitWarningFuncUcall( NULL, NULL );
- }
+ if (callback)
+ {
+ FGWarning* reference = &callback;
+ glutInitWarningFuncUcall( fghInitWarningFuncCallback, *((FGCBUserData*)reference) );
+ }
+ else
+ {
+ glutInitWarningFuncUcall( NULL, NULL );
+ }
}
/*** END OF FILE ***/