| 
									
										
										
										
											2009-10-07 16:48:09 -04:00
										 |  |  | namespace factor | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-20 23:20:49 -04:00
										 |  |  | struct aging_space : bump_allocator<object> { | 
					
						
							| 
									
										
										
										
											2009-10-20 14:47:04 -04:00
										 |  |  | 	object_start_map starts; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-25 00:02:58 -04:00
										 |  |  | 	explicit aging_space(cell size, cell start) : | 
					
						
							| 
									
										
										
										
											2009-10-20 23:20:49 -04:00
										 |  |  | 		bump_allocator<object>(size,start), starts(size,start) {} | 
					
						
							| 
									
										
										
										
											2009-10-20 14:47:04 -04:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	object *allot(cell size) | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		if(here + size > end) return NULL; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-10-20 23:20:49 -04:00
										 |  |  | 		object *obj = bump_allocator<object>::allot(size); | 
					
						
							| 
									
										
										
										
											2009-10-20 14:47:04 -04:00
										 |  |  | 		starts.record_object_start_offset(obj); | 
					
						
							|  |  |  | 		return obj; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2009-10-07 16:48:09 -04:00
										 |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |