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