- timer = (SFG_Timer *)calloc( sizeof(SFG_Timer), 1 );
- if (!timer)
- fgError ("Fatal error: "
- "Memory allocation failure in glutTimerFunc()\n");
+ if( (timer = fgState.FreeTimers.Last) )
+ {
+ fgListRemove( &fgState.FreeTimers, &timer->Node );
+ }
+ else
+ {
+ if( ! (timer = malloc(sizeof(SFG_Timer))) )
+ fgError( "Fatal error: "
+ "Memory allocation failure in glutTimerFunc()\n" );
+ }