Add allocation and garbage collection infrastructure.
Change-Id: I4b04cdfdf18afb75a7b0df87b509e8156b4a932b
diff --git a/src/runtime.cc b/src/runtime.cc
index 28af9dd..3adaea7 100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -14,7 +14,7 @@
Runtime::~Runtime() {
// TODO: use a smart pointer instead.
delete class_linker_;
- delete heap_;
+ Heap::Destroy();
delete thread_list_;
}
@@ -32,10 +32,9 @@
PlatformAbort(file, line);
// If we call abort(3) on a device, all threads in the process
- // receive SIBABRT.
- // debuggerd dumps the stack trace of the main thread, whether or not
- // that was the thread that failed.
- // By stuffing a value into a bogus address, we cause a segmentation
+ // receive SIGABRT. debuggerd dumps the stack trace of the main
+ // thread, whether or not that was the thread that failed. By
+ // stuffing a value into a bogus address, we cause a segmentation
// fault in the current thread, and get a useful log from debuggerd.
// We can also trivially tell the difference between a VM crash and
// a deliberate abort by looking at the fault address.
@@ -57,7 +56,7 @@
bool Runtime::Init() {
thread_list_ = ThreadList::Create();
- heap_ = Heap::Create();
+ Heap::Init(Heap::kStartupSize, Heap::kMaximumSize);
Thread::Init();
Thread* current_thread = Thread::Attach();
thread_list_->Register(current_thread);