Mark more roots.

This is most of the stuff. (Everything that currently exists, though there's
more to come.)

Change-Id: I235a21b006820a027c494374a5b52ffefed89c32
diff --git a/src/runtime.cc b/src/runtime.cc
index 985cdf6..0e5da23 100644
--- a/src/runtime.cc
+++ b/src/runtime.cc
@@ -433,9 +433,16 @@
   return true;
 }
 
-void Runtime::VisitRoots(Heap::RootVistor* root_visitor, void* arg) const {
-  GetClassLinker()->VisitRoots(root_visitor, arg);
-  UNIMPLEMENTED(WARNING) << "mark other roots including per thread state and thread stacks";
+void Runtime::VisitRoots(Heap::RootVisitor* visitor, void* arg) const {
+  class_linker_->VisitRoots(visitor, arg);
+  intern_table_->VisitRoots(visitor, arg);
+  java_vm_->VisitRoots(visitor, arg);
+  thread_list_->VisitRoots(visitor, arg);
+
+  //(*visitor)(&gDvm.outOfMemoryObj, 0, ROOT_VM_INTERNAL, arg);
+  //(*visitor)(&gDvm.internalErrorObj, 0, ROOT_VM_INTERNAL, arg);
+  //(*visitor)(&gDvm.noClassDefFoundErrorObj, 0, ROOT_VM_INTERNAL, arg);
+  UNIMPLEMENTED(WARNING) << "some roots not marked";
 }
 
 }  // namespace art