コード例 #1
0
ファイル: aging_space.hpp プロジェクト: HOLYCOWBATMAN/factor
  object* allot(cell size) {
    if (here + size > end)
      return NULL;

    object* obj = bump_allocator::allot(size);
    starts.record_object_start_offset(obj);
    return obj;
  }
コード例 #2
0
ファイル: tenured_space.hpp プロジェクト: AlexIljin/factor
 object* allot(cell size) {
   object* obj = free_list_allocator<object>::allot(size);
   if (obj) {
     starts.record_object_start_offset(obj);
     return obj;
   }
   return NULL;
 }
コード例 #3
0
ファイル: compaction.cpp プロジェクト: HalfMadDad/factor
	void operator()(object *old_address, object *new_address, cell size)
	{
		slot_visitor<compaction_fixup> slot_forwarder(parent,fixup);
		slot_forwarder.visit_slots(new_address);

		code_block_visitor<compaction_fixup> code_forwarder(parent,fixup);
		code_forwarder.visit_object_code_block(new_address);

		starts->record_object_start_offset(new_address);
	}
コード例 #4
0
ファイル: tenured_space.hpp プロジェクト: 8byte-jose/factor
	void sweep()
	{
		free_list_allocator<object>::sweep();
		starts.update_for_sweep(&this->state);
	}