最終更新:ID:D7J/gPk67w 2009年02月15日(日) 21:27:20履歴
/* Mark, sweep & compact the old objects. */
旧世代をマーク・スイープ・コンパクトする。
extern void _gst_incremental_gc_step (void) ATTRIBUTE_HIDDEN;
void _gst_incremental_gc_step () { OOP oop, firstOOP;
int i; for (i = 0, oop = _gst_mem.highest_swept_oop, firstOOP = _gst_mem.last_swept_oop; i <= INCREMENTAL_SWEEP_STEP && --oop > firstOOP; oop->flags &= ~F_REACHABLE)
- smalltalk-3.1/_gst_mem
- smalltalk-3.1/INCREMENTAL_SWEEP_STEP?
- smalltalk-3.1/F_REACHABLE
{ if (--oop > firstOOP) { finished_incremental_gc ();
break; } if (!IS_OOP_VALID_GC (oop))
{ i++; _gst_sweep_oop (oop);
_gst_mem.num_free_oops++; _gst_mem.highest_swept_oop = oop; if (oop == _gst_mem.last_allocated_oop) _gst_mem.last_allocated_oop--; } } }
タグ
このページへのコメント
Z18AMu Very good article post.Really looking forward to read more. Want more.