Applied Christian's change to drop unnecessary dependency to X11 libraries we
[freeglut] / src / fg_init.c
index c3c00e5..b8a38f7 100644 (file)
@@ -683,20 +683,21 @@ 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 );
-       }
-       else
-       {
-               glutInitErrorFuncUcall( NULL, NULL );
-       }
+    if (callback)
+    {
+        FGError* reference = &callback;
+        glutInitErrorFuncUcall( fghInitErrorFuncCallback, *((FGCBUserData*)reference) );
+    }
+    else
+    {
+        glutInitErrorFuncUcall( NULL, NULL );
+    }
 }
 
 /*
@@ -711,20 +712,21 @@ 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 );
-       }
-       else
-       {
-               glutInitWarningFuncUcall( NULL, NULL );
-       }
+    if (callback)
+    {
+        FGWarning* reference = &callback;
+        glutInitWarningFuncUcall( fghInitWarningFuncCallback, *((FGCBUserData*)reference) );
+    }
+    else
+    {
+        glutInitWarningFuncUcall( NULL, NULL );
+    }
 }
 
 /*** END OF FILE ***/