X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_callbacks.c;h=94463157ae7e9eff4a2bb9b03273e31bcde50738;hb=3515ebeb3424bf675a8a10f04b61fb6924775e0c;hp=b741a0c19a53e0db21c9f2a32f47bd72891b26ce;hpb=646676b8dbf8ab504ac8a275fe9a63a403a3190b;p=freeglut diff --git a/src/freeglut_callbacks.c b/src/freeglut_callbacks.c index b741a0c..9446315 100644 --- a/src/freeglut_callbacks.c +++ b/src/freeglut_callbacks.c @@ -48,7 +48,16 @@ */ void FGAPIENTRY glutDisplayFunc( void (* callback)( void ) ) { + if( !callback ) + fgError ("Fatal error in program. NULL display callback not " + "permitted in GLUT 3.0+ or freeglut 2.0.1+\n"); SET_CALLBACK( Display ); + + /* + * Force a redisplay with the new callback + */ + fgStructure.Window->State.Redisplay = TRUE; + } /* @@ -100,7 +109,10 @@ void FGAPIENTRY glutTimerFunc( unsigned int timeOut, void (* callback)( int ), i /* * Create a new freeglut timer hook structure */ - timer = calloc( sizeof(SFG_Timer), 1 ); + timer = (SFG_Timer *)calloc( sizeof(SFG_Timer), 1 ); + if (!timer) + fgError ("Fatal error: " + "Memory allocation failure in glutTimerFunc()\n"); /* * Remember the callback address and timer hook's ID