Each space has its own bitmap(s)

Each alloc space now has One mark+live bitmap. Each image space has only one live bitmap.

Change-Id: I2e919d1bd7d9f4d35d0e95ed83a58df6f754df6e
diff --git a/src/class_linker.cc b/src/class_linker.cc
index 2b20aff..dfed6f7 100644
--- a/src/class_linker.cc
+++ b/src/class_linker.cc
@@ -48,6 +48,7 @@
 #include "scoped_jni_thread_state.h"
 #include "ScopedLocalRef.h"
 #include "space.h"
+#include "space_bitmap.h"
 #include "stack_indirect_reference_table.h"
 #include "stl_util.h"
 #include "thread.h"
@@ -916,11 +917,11 @@
     AppendToBootClassPath(*dex_file, dex_cache);
   }
 
-  HeapBitmap* heap_bitmap = heap->GetLiveBits();
-  DCHECK(heap_bitmap != NULL);
-
   // reinit clases_ table
-  heap_bitmap->Walk(InitFromImageCallback, this);
+  const Spaces& vec = heap->GetSpaces();
+  for (Spaces::const_iterator cur = vec.begin(); cur != vec.end(); ++cur) {
+    (*cur)->GetLiveBitmap()->Walk(InitFromImageCallback, this);
+  }
 
   // reinit class_roots_
   Object* class_roots_object =