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);
 | 
			
		||||
    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 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() {
 | 
			
		||||
    here = start;
 | 
			
		||||
#ifdef FACTOR_DEBUG
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue