- 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" );
+ }