VM: move next_object_after() and first_object() to aging_space (no iteration possible in nursery)
							parent
							
								
									50c74fc496
								
							
						
					
					
						commit
						231f50039b
					
				| 
						 | 
					@ -14,6 +14,21 @@ struct aging_space : bump_allocator<object> {
 | 
				
			||||||
    starts.record_object_start_offset(obj);
 | 
					    starts.record_object_start_offset(obj);
 | 
				
			||||||
    return obj;
 | 
					    return obj;
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cell next_object_after(cell scan) {
 | 
				
			||||||
 | 
					    cell size = ((object*)scan)->size();
 | 
				
			||||||
 | 
					    if (scan + size < here)
 | 
				
			||||||
 | 
					      return scan + size;
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      return 0;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  cell first_object() {
 | 
				
			||||||
 | 
					    if (start != here)
 | 
				
			||||||
 | 
					      return start;
 | 
				
			||||||
 | 
					    else
 | 
				
			||||||
 | 
					      return 0;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,21 +22,6 @@ template <typename Block> struct bump_allocator {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cell free_space() { return end - here; }
 | 
					  cell free_space() { return end - here; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  cell next_object_after(cell scan) {
 | 
					 | 
				
			||||||
    cell size = ((Block*)scan)->size();
 | 
					 | 
				
			||||||
    if (scan + size < here)
 | 
					 | 
				
			||||||
      return scan + size;
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      return 0;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  cell first_object() {
 | 
					 | 
				
			||||||
    if (start != here)
 | 
					 | 
				
			||||||
      return start;
 | 
					 | 
				
			||||||
    else
 | 
					 | 
				
			||||||
      return 0;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  void flush() {
 | 
					  void flush() {
 | 
				
			||||||
    here = start;
 | 
					    here = start;
 | 
				
			||||||
#ifdef FACTOR_DEBUG
 | 
					#ifdef FACTOR_DEBUG
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue