]> gitweb.factorcode.org Git - factor.git/blobdiff - vm/aging_space.hpp
audio.engine.test: cleanup using
[factor.git] / vm / aging_space.hpp
index e559fd4d39bfb186af591a8b8a0dfd3f0606f6a4..fc6c150d62054820fcc19d1b680d6087a89e16d8 100644 (file)
@@ -1,19 +1,32 @@
 namespace factor {
 
-struct aging_space : bump_allocator<object> {
+struct aging_space : bump_allocator {
   object_start_map starts;
 
-  explicit aging_space(cell size, cell start)
-      : bump_allocator<object>(size, start), starts(size, start) {}
+  aging_space(cell size, cell start)
+      : bump_allocator(size, start), starts(size, start) {}
 
   object* allot(cell size) {
     if (here + size > end)
       return NULL;
 
-    object* obj = bump_allocator<object>::allot(size);
+    object* obj = bump_allocator::allot(size);
     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;
+    return 0;
+  }
+
+  cell first_object() {
+    if (start != here)
+      return start;
+    return 0;
+  }
 };
 
 }