21 lines
		
	
	
		
			386 B
		
	
	
	
		
			C++
		
	
	
			
		
		
	
	
			21 lines
		
	
	
		
			386 B
		
	
	
	
		
			C++
		
	
	
| namespace factor
 | |
| {
 | |
| 
 | |
| struct aging_space : bump_allocator<object> {
 | |
| 	object_start_map starts;
 | |
| 
 | |
| 	explicit aging_space(cell size, cell start) :
 | |
| 		bump_allocator<object>(size,start), starts(size,start) {}
 | |
| 
 | |
| 	object *allot(cell size)
 | |
| 	{
 | |
| 		if(here + size > end) return NULL;
 | |
| 
 | |
| 		object *obj = bump_allocator<object>::allot(size);
 | |
| 		starts.record_object_start_offset(obj);
 | |
| 		return obj;
 | |
| 	}
 | |
| };
 | |
| 
 | |
| }
 |