23 lines
		
	
	
		
			544 B
		
	
	
	
		
			C++
		
	
	
			
		
		
	
	
			23 lines
		
	
	
		
			544 B
		
	
	
	
		
			C++
		
	
	
namespace factor
 | 
						|
{
 | 
						|
 | 
						|
static const cell card_starts_inside_object = 0xff;
 | 
						|
 | 
						|
struct object_start_map {
 | 
						|
	cell size, start;
 | 
						|
	card *object_start_offsets;
 | 
						|
	card *object_start_offsets_end;
 | 
						|
 | 
						|
	explicit object_start_map(cell size_, cell start_);
 | 
						|
	~object_start_map();
 | 
						|
 | 
						|
	cell first_object_in_card(cell card_index);
 | 
						|
	cell find_object_containing_card(cell card_index);
 | 
						|
	void record_object_start_offset(object *obj);
 | 
						|
	void clear_object_start_offsets();
 | 
						|
	void update_card_for_sweep(cell index, u16 mask);
 | 
						|
	void update_for_sweep(mark_bits<object> *state);
 | 
						|
};
 | 
						|
 | 
						|
}
 |