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