Initialize ClassLinker from image

Change-Id: Ibaf47b4181f7c6603a8b37e2eba8fa6509c927ed
diff --git a/src/intern_table.cc b/src/intern_table.cc
index 3ef5917..e070573 100644
--- a/src/intern_table.cc
+++ b/src/intern_table.cc
@@ -14,11 +14,15 @@
   delete intern_table_lock_;
 }
 
-void InternTable::VisitRoots(Heap::RootVistor* root_visitor, void* arg) {
+size_t InternTable::Size() const {
+  return intern_table_.size();
+}
+
+void InternTable::VisitRoots(Heap::RootVistor* root_visitor, void* arg) const {
   MutexLock mu(intern_table_lock_);
   typedef Table::const_iterator It; // TODO: C++0x auto
   for (It it = intern_table_.begin(), end = intern_table_.end(); it != end; ++it) {
-      root_visitor(it->second, arg);
+    root_visitor(it->second, arg);
   }
 }
 
@@ -36,9 +40,13 @@
       }
     }
     String* new_string = String::AllocFromUtf16(utf16_length, utf16_data_out.get(), hash_code);
-    intern_table_.insert(std::make_pair(hash_code, new_string));
+    Register(new_string);
     return new_string;
   }
 }
 
+void InternTable::Register(String* string) {
+  intern_table_.insert(std::make_pair(string->GetHashCode(), string));
+}
+
 }  // namespace art