I see it. Look at this taken from blitz_gc.c
BBGCMem *bbGCAlloc( int sz,BBGCPool *pool ){ if( (gc_mode & 3)==1 ){ static int alloced; static int rate=500; alloced+=sz; if( alloced>(1024*1024) || buf_put-buf_base>rate ){ collectMem(0); rate+=500-gc_objsfreed; alloced=0; } }else if( (gc_mode & 3)==3 ){ collectMem(0); } BBGCMem *q=(BBGCMem*)bbGCMemAlloc( sz ); q->pool=pool; q->refs=0; setMemBit( q ); bbGCFree( q ); return q; }