X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffg_init.c;h=b8a38f7e63eef81922bbf6a56b02a977ad3a1b3c;hb=155d9d0f851f035871188033b7b757ac2fd02693;hp=ed29a8385090b916f3024744fff08627a4fa6525;hpb=369e02f3912ca0f768d98e49fb1198e80f44e078;p=freeglut diff --git a/src/fg_init.c b/src/fg_init.c index ed29a83..b8a38f7 100644 --- a/src/fg_init.c +++ b/src/fg_init.c @@ -683,15 +683,16 @@ void FGAPIENTRY glutInitErrorFuncUcall( FGErrorUC callback, FGCBUserData userDat 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 ); + FGError* reference = &callback; + glutInitErrorFuncUcall( fghInitErrorFuncCallback, *((FGCBUserData*)reference) ); } else { @@ -711,15 +712,16 @@ void FGAPIENTRY glutInitWarningFuncUcall( FGWarningUC callback, FGCBUserData use 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 ); + FGWarning* reference = &callback; + glutInitWarningFuncUcall( fghInitWarningFuncCallback, *((FGCBUserData*)reference) ); } else {